@@ -114,6 +114,53 @@ func TestOutput(t *testing.T) {
114114 r .NoError (err )
115115 r .Equal (int (resultInt ), 99 )
116116 r .Equal (stepStatus ["mystep" ].Phase , v1alpha1 .WorkflowStepPhaseSucceeded )
117+
118+ taskValue = cuectx .CompileString (`output: $returns: score: 99` )
119+ stepStatus = make (map [string ]v1alpha1.StepStatus )
120+ err = Output (wfCtx , taskValue , v1alpha1.WorkflowStep {
121+ WorkflowStepBase : v1alpha1.WorkflowStepBase {
122+ Properties : & runtime.RawExtension {
123+ Raw : []byte ("{\" name\" :\" mystep\" }" ),
124+ },
125+ Outputs : v1alpha1.StepOutputs {{
126+ ValueFrom : "output.$returns.score" ,
127+ Name : "myscore2" ,
128+ }},
129+ },
130+ }, v1alpha1.StepStatus {
131+ Phase : v1alpha1 .WorkflowStepPhaseSucceeded ,
132+ }, stepStatus )
133+ r .NoError (err )
134+ result , err = wfCtx .GetVar ("myscore2" )
135+ r .NoError (err )
136+ resultInt , err = result .Int64 ()
137+ r .NoError (err )
138+ r .Equal (int (resultInt ), 99 )
139+ r .Equal (stepStatus ["mystep" ].Phase , v1alpha1 .WorkflowStepPhaseSucceeded )
140+
141+
142+ taskValue = cuectx .CompileString (`output: $returns: score: 99` )
143+ stepStatus = make (map [string ]v1alpha1.StepStatus )
144+ err = Output (wfCtx , taskValue , v1alpha1.WorkflowStep {
145+ WorkflowStepBase : v1alpha1.WorkflowStepBase {
146+ Properties : & runtime.RawExtension {
147+ Raw : []byte ("{\" name\" :\" mystep\" }" ),
148+ },
149+ Outputs : v1alpha1.StepOutputs {{
150+ ValueFrom : "output.score" ,
151+ Name : "myscore3" ,
152+ }},
153+ },
154+ }, v1alpha1.StepStatus {
155+ Phase : v1alpha1 .WorkflowStepPhaseSucceeded ,
156+ }, stepStatus )
157+ r .NoError (err )
158+ result , err = wfCtx .GetVar ("myscore3" )
159+ r .NoError (err )
160+ resultInt , err = result .Int64 ()
161+ r .NoError (err )
162+ r .Equal (int (resultInt ), 99 )
163+ r .Equal (stepStatus ["mystep" ].Phase , v1alpha1 .WorkflowStepPhaseSucceeded )
117164}
118165
119166func mockContext (t * testing.T ) wfContext.Context {
0 commit comments