@@ -401,6 +401,38 @@ func TestApplyTaskResults_MinimalExpression(t *testing.T) {
401401 }},
402402 },
403403 }},
404+ }, {
405+ name : "Test array result substitution on minimal variable substitution expression - params" ,
406+ resolvedResultRefs : ResolvedResultRefs {{
407+ Value : * v1beta1 .NewArrayOrString ("arrayResultValueOne" , "arrayResultValueTwo" ),
408+ ResultReference : v1beta1.ResultRef {
409+ PipelineTask : "aTask" ,
410+ Result : "a.Result" ,
411+ },
412+ FromTaskRun : "aTaskRun" ,
413+ }},
414+ targets : PipelineRunState {{
415+ PipelineTask : & v1beta1.PipelineTask {
416+ Name : "bTask" ,
417+ TaskRef : & v1beta1.TaskRef {Name : "bTask" },
418+ Params : []v1beta1.Param {{
419+ Name : "bParam" ,
420+ Value : v1beta1.ArrayOrString {Type : v1beta1 .ParamTypeArray ,
421+ ArrayVal : []string {`$(tasks.aTask.results["a.Result"][*])` },
422+ },
423+ }},
424+ },
425+ }},
426+ want : PipelineRunState {{
427+ PipelineTask : & v1beta1.PipelineTask {
428+ Name : "bTask" ,
429+ TaskRef : & v1beta1.TaskRef {Name : "bTask" },
430+ Params : []v1beta1.Param {{
431+ Name : "bParam" ,
432+ Value : * v1beta1 .NewArrayOrString ("arrayResultValueOne" , "arrayResultValueTwo" ),
433+ }},
434+ },
435+ }},
404436 }, {
405437 name : "Test result substitution on minimal variable substitution expression - when expressions" ,
406438 resolvedResultRefs : ResolvedResultRefs {{
@@ -433,6 +465,39 @@ func TestApplyTaskResults_MinimalExpression(t *testing.T) {
433465 }},
434466 },
435467 }},
468+ }, {
469+ name : "Test array result substitution on minimal variable substitution expression - when expressions" ,
470+ resolvedResultRefs : ResolvedResultRefs {{
471+ Value : * v1beta1 .NewArrayOrString ("arrayResultValueOne" , "arrayResultValueTwo" ),
472+ ResultReference : v1beta1.ResultRef {
473+ PipelineTask : "aTask" ,
474+ Result : "aResult" ,
475+ },
476+ FromTaskRun : "aTaskRun" ,
477+ }},
478+ targets : PipelineRunState {{
479+ PipelineTask : & v1beta1.PipelineTask {
480+ Name : "bTask" ,
481+ TaskRef : & v1beta1.TaskRef {Name : "bTask" },
482+ WhenExpressions : []v1beta1.WhenExpression {{
483+ // Note that Input doesn't support array replacement.
484+ Input : "anInput" ,
485+ Operator : selection .In ,
486+ Values : []string {"$(tasks.aTask.results.aResult[*])" },
487+ }},
488+ },
489+ }},
490+ want : PipelineRunState {{
491+ PipelineTask : & v1beta1.PipelineTask {
492+ Name : "bTask" ,
493+ TaskRef : & v1beta1.TaskRef {Name : "bTask" },
494+ WhenExpressions : []v1beta1.WhenExpression {{
495+ Input : "anInput" ,
496+ Operator : selection .In ,
497+ Values : []string {"arrayResultValueOne" , "arrayResultValueTwo" },
498+ }},
499+ },
500+ }},
436501 }} {
437502 t .Run (tt .name , func (t * testing.T ) {
438503 ApplyTaskResults (tt .targets , tt .resolvedResultRefs )
0 commit comments