@@ -10,6 +10,8 @@ import (
1010 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1alpha1"
1111 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
1212 tb "github.com/tektoncd/pipeline/test/builder"
13+ corev1 "k8s.io/api/core/v1"
14+ "knative.dev/pkg/apis"
1315)
1416
1517func TestTaskParamResolver_ResolveResultRefs (t * testing.T ) {
@@ -366,7 +368,7 @@ func TestResolveResultRefs(t *testing.T) {
366368 }
367369 for _ , tt := range tests {
368370 t .Run (tt .name , func (t * testing.T ) {
369- got , err := ResolveResultRefs (tt .args .pipelineRunState , tt .args .targets , nil )
371+ got , err := ResolveResultRefs (tt .args .pipelineRunState , tt .args .targets )
370372 sort .SliceStable (got , func (i , j int ) bool {
371373 return strings .Compare (got [i ].FromTaskRun , got [j ].FromTaskRun ) < 0
372374 })
@@ -380,3 +382,118 @@ func TestResolveResultRefs(t *testing.T) {
380382 })
381383 }
382384}
385+
386+ func TestResolvePipelineResultRefs (t * testing.T ) {
387+ type args struct {
388+ pipelineRunState PipelineRunState
389+ pipelineResults []v1beta1.PipelineResult
390+ }
391+ pipelineRunState := PipelineRunState {
392+ {
393+ TaskRunName : "aTaskRun" ,
394+ TaskRun : tb .TaskRun ("aTaskRun" , tb .TaskRunStatus (
395+ tb .TaskRunResult ("aResult" , "aResultValue" ),
396+ )),
397+ PipelineTask : & v1alpha1.PipelineTask {
398+ Name : "aTask" ,
399+ TaskRef : & v1alpha1.TaskRef {Name : "aTask" },
400+ },
401+ }, {
402+ TaskRunName : "bTaskRun" ,
403+ TaskRun : tb .TaskRun ("bTaskRun" , tb .TaskRunStatus (
404+ tb .StatusCondition (apis.Condition {
405+ Type : apis .ConditionSucceeded ,
406+ Status : corev1 .ConditionFalse })),
407+ ),
408+ PipelineTask : & v1alpha1.PipelineTask {
409+ Name : "bTask" ,
410+ TaskRef : & v1alpha1.TaskRef {Name : "bTask" },
411+ },
412+ }, {
413+ PipelineTask : & v1alpha1.PipelineTask {
414+ Name : "cTask" ,
415+ TaskRef : & v1alpha1.TaskRef {Name : "cTask" },
416+ },
417+ },
418+ }
419+
420+ tests := []struct {
421+ name string
422+ args args
423+ want ResolvedResultRefs
424+ }{
425+ {
426+ name : "Test pipeline result from a successful task" ,
427+ args : args {
428+ pipelineRunState : pipelineRunState ,
429+ pipelineResults : []v1beta1.PipelineResult {
430+ v1beta1.PipelineResult {
431+ Name : "from-a" ,
432+ Value : "$(tasks.aTask.results.aResult)" ,
433+ Description : "a result from a" ,
434+ },
435+ },
436+ },
437+ want : ResolvedResultRefs {
438+ {
439+ Value : v1beta1.ArrayOrString {
440+ Type : v1beta1 .ParamTypeString ,
441+ StringVal : "aResultValue" ,
442+ },
443+ ResultReference : v1beta1.ResultRef {
444+ PipelineTask : "aTask" ,
445+ Result : "aResult" ,
446+ },
447+ FromTaskRun : "aTaskRun" ,
448+ },
449+ },
450+ },
451+ {
452+ name : "Test results from a task that did not run and one and failed" ,
453+ args : args {
454+ pipelineRunState : pipelineRunState ,
455+ pipelineResults : []v1beta1.PipelineResult {
456+ v1beta1.PipelineResult {
457+ Name : "from-a" ,
458+ Value : "$(tasks.aTask.results.aResult)" ,
459+ Description : "a result from a" ,
460+ },
461+ v1beta1.PipelineResult {
462+ Name : "from-b" ,
463+ Value : "$(tasks.bTask.results.bResult)" ,
464+ Description : "a result from b" ,
465+ },
466+ v1beta1.PipelineResult {
467+ Name : "from-c" ,
468+ Value : "$(tasks.cTask.results.cResult)" ,
469+ Description : "a result from c" ,
470+ },
471+ },
472+ },
473+ want : ResolvedResultRefs {
474+ {
475+ Value : v1beta1.ArrayOrString {
476+ Type : v1beta1 .ParamTypeString ,
477+ StringVal : "aResultValue" ,
478+ },
479+ ResultReference : v1beta1.ResultRef {
480+ PipelineTask : "aTask" ,
481+ Result : "aResult" ,
482+ },
483+ FromTaskRun : "aTaskRun" ,
484+ },
485+ },
486+ },
487+ }
488+ for _ , tt := range tests {
489+ t .Run (tt .name , func (t * testing.T ) {
490+ got := ResolvePipelineResultRefs (tt .args .pipelineRunState , tt .args .pipelineResults )
491+ sort .SliceStable (got , func (i , j int ) bool {
492+ return strings .Compare (got [i ].FromTaskRun , got [j ].FromTaskRun ) < 0
493+ })
494+ if d := cmp .Diff (tt .want , got ); d != "" {
495+ t .Fatalf ("ResolveResultRef -want, +got: %v" , d )
496+ }
497+ })
498+ }
499+ }
0 commit comments