(t *testing.T)
| 250 | } |
| 251 | |
| 252 | func TestResolveTemplate(t *testing.T) { |
| 253 | ctx := logging.TestContext(t.Context()) |
| 254 | wfClientset := fakewfclientset.NewSimpleClientset() |
| 255 | err := createWorkflowTemplate(ctx, wfClientset, anotherWorkflowTemplateYaml) |
| 256 | require.NoError(t, err) |
| 257 | |
| 258 | err = createWorkflowTemplate(ctx, wfClientset, someWorkflowTemplateYaml) |
| 259 | require.NoError(t, err) |
| 260 | |
| 261 | wftmpl := unmarshalWftmpl(baseWorkflowTemplateYaml) |
| 262 | log := logging.RequireLoggerFromContext(ctx) |
| 263 | tplCtx := NewContextFromClientSet(wfClientset.ArgoprojV1alpha1().WorkflowTemplates(metav1.NamespaceDefault), wfClientset.ArgoprojV1alpha1().ClusterWorkflowTemplates(), wftmpl, nil, log) |
| 264 | |
| 265 | // Get the template of template name. |
| 266 | tmplHolder := wfv1.WorkflowStep{Template: "whalesay"} |
| 267 | tplCtx, tmpl, _, err := tplCtx.ResolveTemplate(ctx, &tmplHolder) |
| 268 | require.NoError(t, err) |
| 269 | wftmpl, ok := tplCtx.tmplBase.(*wfv1.WorkflowTemplate) |
| 270 | require.True(t, ok, "tmplBase is not a WorkflowTemplate") |
| 271 | assert.Equal(t, "base-workflow-template", wftmpl.Name) |
| 272 | assert.Equal(t, "whalesay", tmpl.Name) |
| 273 | |
| 274 | var tmplGetter wfv1.TemplateHolder |
| 275 | // Get the template of template reference. |
| 276 | tmplHolder = wfv1.WorkflowStep{TemplateRef: &wfv1.TemplateRef{Name: "some-workflow-template", Template: "whalesay"}} |
| 277 | tplCtx, tmpl, _, err = tplCtx.ResolveTemplate(ctx, &tmplHolder) |
| 278 | require.NoError(t, err) |
| 279 | |
| 280 | tmplGetter, ok = tplCtx.tmplBase.(*wfv1.WorkflowTemplate) |
| 281 | require.True(t, ok, "tmplBase is not a WorkflowTemplate") |
| 282 | assert.Equal(t, "some-workflow-template", tmplGetter.GetName()) |
| 283 | assert.Equal(t, "whalesay", tmpl.Name) |
| 284 | assert.NotNil(t, tmpl.Container) |
| 285 | |
| 286 | // Get the template of local nested template reference. |
| 287 | tmplHolder = wfv1.WorkflowStep{TemplateRef: &wfv1.TemplateRef{Name: "some-workflow-template", Template: "local-whalesay"}} |
| 288 | tplCtx, tmpl, _, err = tplCtx.ResolveTemplate(ctx, &tmplHolder) |
| 289 | require.NoError(t, err) |
| 290 | |
| 291 | tmplGetter, ok = tplCtx.tmplBase.(*wfv1.WorkflowTemplate) |
| 292 | require.True(t, ok, "tmplBase is not a WorkflowTemplate") |
| 293 | assert.Equal(t, "some-workflow-template", tmplGetter.GetName()) |
| 294 | assert.Equal(t, "local-whalesay", tmpl.Name) |
| 295 | assert.NotNil(t, tmpl.Steps) |
| 296 | |
| 297 | // Get the template of nested template reference. |
| 298 | tmplHolder = wfv1.WorkflowStep{TemplateRef: &wfv1.TemplateRef{Name: "some-workflow-template", Template: "another-whalesay"}} |
| 299 | tplCtx, tmpl, _, err = tplCtx.ResolveTemplate(ctx, &tmplHolder) |
| 300 | require.NoError(t, err) |
| 301 | |
| 302 | tmplGetter, ok = tplCtx.tmplBase.(*wfv1.WorkflowTemplate) |
| 303 | require.True(t, ok, "tmplBase is not a WorkflowTemplate") |
| 304 | assert.Equal(t, "some-workflow-template", tmplGetter.GetName()) |
| 305 | assert.Equal(t, "another-whalesay", tmpl.Name) |
| 306 | assert.NotNil(t, tmpl.Steps) |
| 307 | |
| 308 | // Get the template of template reference with arguments. |
| 309 | tmplHolder = wfv1.WorkflowStep{ |
nothing calls this directly
no test coverage detected