From 0a6e7d95aba9a029bf265a080591d1aa828d2144 Mon Sep 17 00:00:00 2001 From: Graham Reed Date: Thu, 20 Oct 2022 16:24:05 +0100 Subject: [PATCH] Make sure empty `tpl` values render empty. Signed-off-by: Graham Reed --- pkg/engine/engine_test.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pkg/engine/engine_test.go b/pkg/engine/engine_test.go index 2dcc75fa0..41eb8c591 100644 --- a/pkg/engine/engine_test.go +++ b/pkg/engine/engine_test.go @@ -865,3 +865,36 @@ func TestRenderLoadTemplateForTplFromFile(t *testing.T) { t.Fatalf("Expected %q, got %q", expect, got) } } + +func TestRenderTplEmpty(t *testing.T) { + c := &chart.Chart{ + Metadata: &chart.Metadata{Name: "TplEmpty"}, + Templates: []*chart.File{ + {Name: "templates/empty-string", Data: []byte(`{{tpl "" .}}`)}, + {Name: "templates/empty-action", Data: []byte(`{{tpl "{{ \"\"}}" .}}`)}, + {Name: "templates/only-defines", Data: []byte(`{{tpl "{{define \"not-invoked\"}}not-rendered{{end}}" .}}`)}, + }, + } + v := chartutil.Values{ + "Chart": c.Metadata, + "Release": chartutil.Values{ + "Name": "TestRelease", + }, + } + + out, err := Render(c, v) + if err != nil { + t.Fatal(err) + } + + expects := map[string]string{ + "TplEmpty/templates/empty-string": "", + "TplEmpty/templates/empty-action": "", + "TplEmpty/templates/only-defines": "", + } + for file, expect := range expects { + if out[file] != expect { + t.Errorf("Expected %q, got %q", expect, out[file]) + } + } +}