feat(pkg/engine): and custom funcs overriding test

Signed-off-by: Stepan Paksashvili <stepan.paksashvili@flant.com>
pull/30734/head
Stepan Paksashvili 5 months ago
parent 9073bcf53e
commit 8982b57e5e

@ -196,6 +196,11 @@ func (e Engine) initFunMap(t *template.Template) {
funcMap := funcMap()
includedNames := make(map[string]int)
// Set custom template funcs
for k, v := range e.CustomTemplateFuncs {
funcMap[k] = v
}
// Add the template-rendering functions here so we can close over t.
funcMap["include"] = includeFun(t, includedNames)
funcMap["tpl"] = tplFun(t, includedNames, e.Strict)
@ -246,11 +251,6 @@ func (e Engine) initFunMap(t *template.Template) {
}
}
// Set custom template func, do it here to give opportunity to override standard functions
for k, v := range e.CustomTemplateFuncs {
funcMap[k] = v
}
t.Funcs(funcMap)
}

@ -1310,6 +1310,10 @@ func TestRenderCustomTemplateFuncs(t *testing.T) {
Name: "templates/manifest",
Data: []byte(`{{exclaim .Values.message}}`),
},
{
Name: "templates/override",
Data: []byte(`{{ upper .Values.message }}`),
},
},
}
v := chartutil.Values{
@ -1327,6 +1331,9 @@ func TestRenderCustomTemplateFuncs(t *testing.T) {
"exclaim": func(input string) string {
return input + "!!!"
},
"upper": func(s string) string {
return "custom:" + s
},
}
// Create an engine instance and set the CustomTemplateFuncs.
@ -1345,4 +1352,11 @@ func TestRenderCustomTemplateFuncs(t *testing.T) {
if rendered, ok := out[key]; !ok || rendered != expected {
t.Errorf("Expected %q, got %q", expected, rendered)
}
// Verify that the rendered template used the custom "upper" function.
expected = "custom:hello"
key = "CustomFunc/templates/override"
if rendered, ok := out[key]; !ok || rendered != expected {
t.Errorf("Expected %q, got %q", expected, rendered)
}
}

Loading…
Cancel
Save