From 08a5ba66da58953654cecc2e73ee90d574884611 Mon Sep 17 00:00:00 2001 From: Austin Abro Date: Tue, 5 Nov 2024 14:17:01 +0000 Subject: [PATCH] better test template Signed-off-by: Austin Abro --- src/internal/packager/template/template.go | 4 +- .../packager/template/template_test.go | 78 +++++++++++++++---- 2 files changed, 66 insertions(+), 16 deletions(-) diff --git a/src/internal/packager/template/template.go b/src/internal/packager/template/template.go index bc8b70d4d5..b673f25a6c 100644 --- a/src/internal/packager/template/template.go +++ b/src/internal/packager/template/template.go @@ -147,7 +147,9 @@ func debugPrintTemplateMap(ctx context.Context, templateMap map[string]*variable func getSanitizedTemplateMap(templateMap map[string]*variables.TextTemplate) map[string]string { sanitizedMap := make(map[string]string, len(templateMap)) for key, template := range templateMap { - if template.Sensitive { + if template == nil { + sanitizedMap[key] = "" + } else if template.Sensitive { sanitizedMap[key] = "**sanitized**" } else { sanitizedMap[key] = template.Value diff --git a/src/internal/packager/template/template_test.go b/src/internal/packager/template/template_test.go index add826fcff..d097debdfa 100644 --- a/src/internal/packager/template/template_test.go +++ b/src/internal/packager/template/template_test.go @@ -13,22 +13,70 @@ import ( func TestGetSanitizedTemplateMap(t *testing.T) { t.Parallel() - input := map[string]*variables.TextTemplate{ - "###ZARF_GIT_AUTH_PULL###": {Sensitive: true, Value: "secret1"}, - "###ZARF_GIT_AUTH_PUSH###": {Sensitive: true, Value: "secret2"}, - "###ZARF_REGISTRY###": {Sensitive: false, Value: "127.0.0.1:31999"}, - "###ZARF_GIT_PUSH###": {Sensitive: false, Value: "zarf-git-user"}, - "###ZARF_GIT_PULL###": {Sensitive: false, Value: "zarf-git-read-user"}, - } - expected := map[string]string{ - "###ZARF_GIT_AUTH_PULL###": "**sanitized**", - "###ZARF_GIT_AUTH_PUSH###": "**sanitized**", - "###ZARF_GIT_PULL###": "zarf-git-read-user", - "###ZARF_GIT_PUSH###": "zarf-git-user", - "###ZARF_REGISTRY###": "127.0.0.1:31999", + tests := []struct { + name string + input map[string]*variables.TextTemplate + expected map[string]string + }{ + { + name: "Sensitive entry", + input: map[string]*variables.TextTemplate{ + "###SENSITIVE###": {Sensitive: true, Value: "secret"}, + }, + expected: map[string]string{ + "###SENSITIVE###": "**sanitized**", + }, + }, + { + name: "Non-sensitive entries", + input: map[string]*variables.TextTemplate{ + "###VARIABLE###": {Sensitive: false, Value: "value"}, + }, + expected: map[string]string{ + "###VARIABLE###": "value", + }, + }, + { + name: "Sensitive and non-sensitive entries", + input: map[string]*variables.TextTemplate{ + "###ZARF_GIT_AUTH_PULL###": {Sensitive: true, Value: "secret1"}, + "###ZARF_GIT_AUTH_PUSH###": {Sensitive: true, Value: "secret2"}, + "###ZARF_GIT_PUSH###": {Sensitive: false, Value: "zarf-git-user"}, + "###ZARF_GIT_PULL###": {Sensitive: false, Value: "zarf-git-read-user"}, + }, + expected: map[string]string{ + "###ZARF_GIT_AUTH_PULL###": "**sanitized**", + "###ZARF_GIT_AUTH_PUSH###": "**sanitized**", + "###ZARF_GIT_PULL###": "zarf-git-read-user", + "###ZARF_GIT_PUSH###": "zarf-git-user", + }, + }, + { + name: "Nil map", + input: nil, + expected: map[string]string{}, + }, + { + name: "Empty map", + input: map[string]*variables.TextTemplate{}, + expected: map[string]string{}, + }, + { + name: "Map with nil value", + input: map[string]*variables.TextTemplate{ + "###ZARF_GIT_AUTH_PULL###": nil, + }, + expected: map[string]string{ + "###ZARF_GIT_AUTH_PULL###": "", + }, + }, } - output := getSanitizedTemplateMap(input) - require.Equal(t, expected, output) + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + output := getSanitizedTemplateMap(test.input) + require.Equal(t, test.expected, output) + }) + } }