From 824f7ba2b2f84cd20446a60ccc505bbcc765619e Mon Sep 17 00:00:00 2001 From: Arkaitz Jimenez Date: Tue, 16 Aug 2022 14:57:37 +0200 Subject: [PATCH 1/4] Create failing test case Signed-off-by: Arkaitz Jimenez --- test/e2e/template/helmfile/tmpl_test.go | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/e2e/template/helmfile/tmpl_test.go b/test/e2e/template/helmfile/tmpl_test.go index 7fc49b43..5f08d4fe 100644 --- a/test/e2e/template/helmfile/tmpl_test.go +++ b/test/e2e/template/helmfile/tmpl_test.go @@ -1,6 +1,7 @@ package helmfile import ( + "fmt" "bytes" "os" "testing" @@ -264,6 +265,34 @@ func (t *tmplE2e) load() { var tmplE2eTest = tmplE2e{} + +func TestFileRendering(t *testing.T) { + + tmplE2eTest.load() + + for _, tc := range tmplE2eTest.tcs { + + t.Run(tc.name, func(t *testing.T) { + tc.setEnvs(t) + tempDir, _ := os.MkdirTemp("./testdata", "test") + defer os.RemoveAll(tempDir) + + filename := fmt.Sprintf("%s/%s.gotmpl", tempDir, tc.name) + os.WriteFile(filename, []byte(tc.tmplString), 0644) + fileRenderer := tmpl.NewFileRenderer(os.ReadFile, ".", tc.data) + tmpl_bytes, err := fileRenderer.RenderToBytes(filename); + + if tc.wantErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + tmpl := string(tmpl_bytes); + require.Equal(t, tc.output, tmpl) + }) + } +} + // TestTmplStrings tests the template string func TestTmplStrings(t *testing.T) { c := &tmpl.Context{} From 684be0af50595a1d5df6eab3a1163cc13e0415be Mon Sep 17 00:00:00 2001 From: Arkaitz Jimenez Date: Tue, 16 Aug 2022 14:59:54 +0200 Subject: [PATCH 2/4] Missing context readDir, required for any template using readDir* functions Signed-off-by: Arkaitz Jimenez --- pkg/tmpl/file_renderer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/tmpl/file_renderer.go b/pkg/tmpl/file_renderer.go index 6004061e..27211ef2 100644 --- a/pkg/tmpl/file_renderer.go +++ b/pkg/tmpl/file_renderer.go @@ -19,6 +19,7 @@ func NewFileRenderer(readFile func(filename string) ([]byte, error), basePath st Context: &Context{ basePath: basePath, readFile: readFile, + readDir: os.ReadDir, }, Data: data, } @@ -31,6 +32,7 @@ func NewFirstPassRenderer(basePath string, data interface{}) *FileRenderer { preRender: true, basePath: basePath, readFile: os.ReadFile, + readDir: os.ReadDir, }, Data: data, } From 4553efdcf1444bd3c4882693ab33bee2e30471ac Mon Sep 17 00:00:00 2001 From: Arkaitz Jimenez Date: Tue, 16 Aug 2022 15:15:34 +0200 Subject: [PATCH 3/4] Formatting Signed-off-by: Arkaitz Jimenez --- pkg/tmpl/file_renderer.go | 4 ++-- test/e2e/template/helmfile/tmpl_test.go | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/pkg/tmpl/file_renderer.go b/pkg/tmpl/file_renderer.go index 27211ef2..563bb1c2 100644 --- a/pkg/tmpl/file_renderer.go +++ b/pkg/tmpl/file_renderer.go @@ -19,7 +19,7 @@ func NewFileRenderer(readFile func(filename string) ([]byte, error), basePath st Context: &Context{ basePath: basePath, readFile: readFile, - readDir: os.ReadDir, + readDir: os.ReadDir, }, Data: data, } @@ -32,7 +32,7 @@ func NewFirstPassRenderer(basePath string, data interface{}) *FileRenderer { preRender: true, basePath: basePath, readFile: os.ReadFile, - readDir: os.ReadDir, + readDir: os.ReadDir, }, Data: data, } diff --git a/test/e2e/template/helmfile/tmpl_test.go b/test/e2e/template/helmfile/tmpl_test.go index 5f08d4fe..c1a7d22b 100644 --- a/test/e2e/template/helmfile/tmpl_test.go +++ b/test/e2e/template/helmfile/tmpl_test.go @@ -1,8 +1,8 @@ package helmfile import ( - "fmt" "bytes" + "fmt" "os" "testing" "text/template" @@ -265,32 +265,31 @@ func (t *tmplE2e) load() { var tmplE2eTest = tmplE2e{} - func TestFileRendering(t *testing.T) { tmplE2eTest.load() for _, tc := range tmplE2eTest.tcs { - t.Run(tc.name, func(t *testing.T) { + t.Run(tc.name, func(t *testing.T) { tc.setEnvs(t) - tempDir, _ := os.MkdirTemp("./testdata", "test") - defer os.RemoveAll(tempDir) + tempDir, _ := os.MkdirTemp("./testdata", "test") + defer os.RemoveAll(tempDir) - filename := fmt.Sprintf("%s/%s.gotmpl", tempDir, tc.name) - os.WriteFile(filename, []byte(tc.tmplString), 0644) - fileRenderer := tmpl.NewFileRenderer(os.ReadFile, ".", tc.data) - tmpl_bytes, err := fileRenderer.RenderToBytes(filename); + filename := fmt.Sprintf("%s/%s.gotmpl", tempDir, tc.name) + os.WriteFile(filename, []byte(tc.tmplString), 0644) + fileRenderer := tmpl.NewFileRenderer(os.ReadFile, ".", tc.data) + tmpl_bytes, err := fileRenderer.RenderToBytes(filename) if tc.wantErr { require.Error(t, err) } else { require.NoError(t, err) } - tmpl := string(tmpl_bytes); + tmpl := string(tmpl_bytes) require.Equal(t, tc.output, tmpl) }) - } + } } // TestTmplStrings tests the template string From c9b5f95890f9eeb190de7ed7fc6da6f6e0351c15 Mon Sep 17 00:00:00 2001 From: Arkaitz Jimenez Date: Tue, 16 Aug 2022 16:24:32 +0200 Subject: [PATCH 4/4] lint Signed-off-by: Arkaitz Jimenez --- test/e2e/template/helmfile/tmpl_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/e2e/template/helmfile/tmpl_test.go b/test/e2e/template/helmfile/tmpl_test.go index c1a7d22b..8aa7c105 100644 --- a/test/e2e/template/helmfile/tmpl_test.go +++ b/test/e2e/template/helmfile/tmpl_test.go @@ -266,11 +266,9 @@ func (t *tmplE2e) load() { var tmplE2eTest = tmplE2e{} func TestFileRendering(t *testing.T) { - tmplE2eTest.load() for _, tc := range tmplE2eTest.tcs { - t.Run(tc.name, func(t *testing.T) { tc.setEnvs(t) tempDir, _ := os.MkdirTemp("./testdata", "test")