From cf6fd30c7330d317c993c648fc92819ff8d8dc1e Mon Sep 17 00:00:00 2001 From: jregan Date: Wed, 20 May 2020 08:27:54 -0700 Subject: [PATCH] Fix nondeterminstic failure --- api/internal/target/kusttarget_test.go | 66 ++++++++++++++------------ 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index c739d7010..134cac462 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -5,6 +5,7 @@ package target_test import ( "encoding/base64" + "reflect" "testing" "github.com/stretchr/testify/require" @@ -13,6 +14,7 @@ import ( "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" + "sigs.k8s.io/kustomize/api/types" ) // KustTarget is primarily tested in the krusty package with @@ -20,24 +22,42 @@ import ( func TestLoad(t *testing.T) { th := kusttest_test.MakeHarness(t) + expectedTypeMeta := types.TypeMeta{ + APIVersion: "kustomize.config.k8s.io/v1beta1", + Kind: "Kustomization", + } + testCases := map[string]struct { errContains string content string + k types.Kustomization }{ "empty": { - errContains: "unable to find one of 'kustomization.yaml', ", // no content + k: types.Kustomization{ + TypeMeta: expectedTypeMeta, + }, }, "nonsenseLatin": { errContains: "error converting YAML to JSON", content: ` -Lorem ipsum dolor sit amet, consectetur -adipiscing elit, sed do eiusmod tempor -incididunt ut labore et dolore magna aliqua. -Ut enim ad minim veniam, quis nostrud -exercitation ullamco laboris nisi ut -aliquip ex ea commodo consequat. + Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. + Ut enim ad minim veniam, quis nostrud + exercitation ullamco laboris nisi ut + aliquip ex ea commodo consequat. + `, + }, + "simple": { + content: ` +commonLabels: + app: nginx `, + k: types.Kustomization{ + TypeMeta: expectedTypeMeta, + CommonLabels: map[string]string{"app": "nginx"}, + }, }, "commented": { content: ` @@ -46,34 +66,21 @@ aliquip ex ea commodo consequat. # yada yada yada. commonLabels: - app: nginx -`, - }, - "implicitHeader": { - content: ` -commonLabels: - app: nginx -`, - }, - "explicitHeader": { - content: ` -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -commonLabels: - app: nginx + app: nginx `, + k: types.Kustomization{ + TypeMeta: expectedTypeMeta, + CommonLabels: map[string]string{"app": "nginx"}, + }, }, } kt := makeKustTargetWithRf( t, th.GetFSys(), "/", resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())) - for tn, tc := range testCases { t.Run(tn, func(t *testing.T) { - if tc.content != "" { - th.WriteK("/", tc.content) - } + th.WriteK("/", tc.content) err := kt.Load() if tc.errContains != "" { require.NotNilf(t, err, "expected error containing: `%s`", tc.errContains) @@ -82,11 +89,8 @@ commonLabels: require.Nilf(t, err, "got error: %v", err) k := kt.Kustomization() require.Condition(t, func() bool { - return len(k.CommonLabels) == 1 - }, "expecting a labels entry") - require.Condition(t, func() bool { - return k.CommonLabels["app"] == "nginx" - }, "expecting app:nginx") + return reflect.DeepEqual(tc.k, k) + }, "expected %v, got %v", tc.k, k) } }) }