From b54349d9b29756b95653986c07a687bf4215a075 Mon Sep 17 00:00:00 2001 From: Stepan Paksashvili Date: Thu, 17 Apr 2025 01:30:43 +0300 Subject: [PATCH] fix(pkg/engine): allow to override all functions Signed-off-by: Stepan Paksashvili --- pkg/engine/engine.go | 10 +++++----- pkg/engine/engine_test.go | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index eaf2ca856..0b0933def 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -196,11 +196,6 @@ 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) @@ -251,6 +246,11 @@ func (e Engine) initFunMap(t *template.Template) { } } + // Set custom template funcs + for k, v := range e.CustomTemplateFuncs { + funcMap[k] = v + } + t.Funcs(funcMap) } diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go index bf27f982f..68e0158fa 100644 --- a/pkg/engine/engine_test.go +++ b/pkg/engine/engine_test.go @@ -1302,7 +1302,7 @@ func TestRenderTplMissingKeyString(t *testing.T) { } func TestRenderCustomTemplateFuncs(t *testing.T) { - // Create a chart with a single template that uses a custom function "exclaim" + // Create a chart with two templates that use custom functions c := &chart.Chart{ Metadata: &chart.Metadata{Name: "CustomFunc"}, Templates: []*chart.File{ @@ -1326,7 +1326,7 @@ func TestRenderCustomTemplateFuncs(t *testing.T) { }, } - // Define a custom template function "exclaim" that appends "!!!" to a string. + // Define a custom template function "exclaim" that appends "!!!" to a string and override "upper" function customFuncs := template.FuncMap{ "exclaim": func(input string) string { return input + "!!!"