Skip to content

Commit f316a2d

Browse files
vdemeestertekton-robot
authored andcommitted
Fix the issue with empty array replacement
Prior to this change, if there is only one element in an array that is a reference to an empty array, the original array becomes nil after replacement, but it should be an empty array instead of nil. Fixes #5149 Signed-off-by: Vincent Demeester <[email protected]>
1 parent 6ccf5ee commit f316a2d

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

pkg/apis/pipeline/v1beta1/param_types.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ func (arrayOrString *ArrayOrString) ApplyReplacements(stringReplacements map[str
199199
if arrayOrString.Type == ParamTypeString {
200200
arrayOrString.StringVal = substitution.ApplyReplacements(arrayOrString.StringVal, stringReplacements)
201201
} else {
202-
var newArrayVal []string
202+
newArrayVal := []string{}
203203
for _, v := range arrayOrString.ArrayVal {
204204
newArrayVal = append(newArrayVal, substitution.ApplyArrayReplacements(v, stringReplacements, arrayReplacements)...)
205205
}

pkg/apis/pipeline/v1beta1/param_types_test.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,18 @@ func TestArrayOrString_ApplyReplacements(t *testing.T) {
200200
},
201201
expectedOutput: v1beta1.NewArrayOrString("firstvalue", "array", "value", "lastvalue", "asdf", "sdfsd"),
202202
}, {
203-
name: "empty array replacement",
203+
name: "empty array replacement without extra elements",
204+
args: args{
205+
// input: v1beta1.NewArrayOrString("$(arraykey)"),
206+
input: &v1beta1.ArrayOrString{
207+
Type: v1beta1.ParamTypeArray,
208+
ArrayVal: []string{"$(arraykey)"},
209+
},
210+
arrayReplacements: map[string][]string{"arraykey": {}},
211+
},
212+
expectedOutput: &v1beta1.ArrayOrString{Type: v1beta1.ParamTypeArray, ArrayVal: []string{}},
213+
}, {
214+
name: "empty array replacement with extra elements",
204215
args: args{
205216
input: v1beta1.NewArrayOrString("firstvalue", "$(arraykey)", "lastvalue"),
206217
stringReplacements: map[string]string{"some": "value", "anotherkey": "value"},

0 commit comments

Comments
 (0)