MCPcopy
hub / github.com/argoproj/argo-workflows / TestResolveTemplate

Function TestResolveTemplate

workflow/templateresolution/context_test.go:252–331  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

250}
251
252func 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{

Callers

nothing calls this directly

Calls 11

GetNameMethod · 0.95
TestContextFunction · 0.92
RequireLoggerFromContextFunction · 0.92
NewContextFromClientSetFunction · 0.85
ResolveTemplateMethod · 0.80
createWorkflowTemplateFunction · 0.70
unmarshalWftmplFunction · 0.70
ContextMethod · 0.65
WorkflowTemplatesMethod · 0.65
ArgoprojV1alpha1Method · 0.65

Tested by

no test coverage detected