mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 17:52:12 +00:00
Merge pull request #2505 from monopole/nondeterministic
Fix nondeterminstic failure
This commit is contained in:
@@ -5,6 +5,7 @@ package target_test
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
|
"reflect"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
@@ -13,6 +14,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||||
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
// KustTarget is primarily tested in the krusty package with
|
// KustTarget is primarily tested in the krusty package with
|
||||||
@@ -20,24 +22,42 @@ import (
|
|||||||
|
|
||||||
func TestLoad(t *testing.T) {
|
func TestLoad(t *testing.T) {
|
||||||
th := kusttest_test.MakeHarness(t)
|
th := kusttest_test.MakeHarness(t)
|
||||||
|
expectedTypeMeta := types.TypeMeta{
|
||||||
|
APIVersion: "kustomize.config.k8s.io/v1beta1",
|
||||||
|
Kind: "Kustomization",
|
||||||
|
}
|
||||||
|
|
||||||
testCases := map[string]struct {
|
testCases := map[string]struct {
|
||||||
errContains string
|
errContains string
|
||||||
content string
|
content string
|
||||||
|
k types.Kustomization
|
||||||
}{
|
}{
|
||||||
"empty": {
|
"empty": {
|
||||||
errContains: "unable to find one of 'kustomization.yaml', ",
|
|
||||||
// no content
|
// no content
|
||||||
|
k: types.Kustomization{
|
||||||
|
TypeMeta: expectedTypeMeta,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"nonsenseLatin": {
|
"nonsenseLatin": {
|
||||||
errContains: "error converting YAML to JSON",
|
errContains: "error converting YAML to JSON",
|
||||||
content: `
|
content: `
|
||||||
Lorem ipsum dolor sit amet, consectetur
|
Lorem ipsum dolor sit amet, consectetur
|
||||||
adipiscing elit, sed do eiusmod tempor
|
adipiscing elit, sed do eiusmod tempor
|
||||||
incididunt ut labore et dolore magna aliqua.
|
incididunt ut labore et dolore magna aliqua.
|
||||||
Ut enim ad minim veniam, quis nostrud
|
Ut enim ad minim veniam, quis nostrud
|
||||||
exercitation ullamco laboris nisi ut
|
exercitation ullamco laboris nisi ut
|
||||||
aliquip ex ea commodo consequat.
|
aliquip ex ea commodo consequat.
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
"simple": {
|
||||||
|
content: `
|
||||||
|
commonLabels:
|
||||||
|
app: nginx
|
||||||
`,
|
`,
|
||||||
|
k: types.Kustomization{
|
||||||
|
TypeMeta: expectedTypeMeta,
|
||||||
|
CommonLabels: map[string]string{"app": "nginx"},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"commented": {
|
"commented": {
|
||||||
content: `
|
content: `
|
||||||
@@ -46,34 +66,21 @@ aliquip ex ea commodo consequat.
|
|||||||
# yada yada yada.
|
# yada yada yada.
|
||||||
|
|
||||||
commonLabels:
|
commonLabels:
|
||||||
app: nginx
|
app: nginx
|
||||||
`,
|
|
||||||
},
|
|
||||||
"implicitHeader": {
|
|
||||||
content: `
|
|
||||||
commonLabels:
|
|
||||||
app: nginx
|
|
||||||
`,
|
|
||||||
},
|
|
||||||
"explicitHeader": {
|
|
||||||
content: `
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
commonLabels:
|
|
||||||
app: nginx
|
|
||||||
`,
|
`,
|
||||||
|
k: types.Kustomization{
|
||||||
|
TypeMeta: expectedTypeMeta,
|
||||||
|
CommonLabels: map[string]string{"app": "nginx"},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
kt := makeKustTargetWithRf(
|
kt := makeKustTargetWithRf(
|
||||||
t, th.GetFSys(), "/",
|
t, th.GetFSys(), "/",
|
||||||
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
|
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
|
||||||
|
|
||||||
for tn, tc := range testCases {
|
for tn, tc := range testCases {
|
||||||
t.Run(tn, func(t *testing.T) {
|
t.Run(tn, func(t *testing.T) {
|
||||||
if tc.content != "" {
|
th.WriteK("/", tc.content)
|
||||||
th.WriteK("/", tc.content)
|
|
||||||
}
|
|
||||||
err := kt.Load()
|
err := kt.Load()
|
||||||
if tc.errContains != "" {
|
if tc.errContains != "" {
|
||||||
require.NotNilf(t, err, "expected error containing: `%s`", 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)
|
require.Nilf(t, err, "got error: %v", err)
|
||||||
k := kt.Kustomization()
|
k := kt.Kustomization()
|
||||||
require.Condition(t, func() bool {
|
require.Condition(t, func() bool {
|
||||||
return len(k.CommonLabels) == 1
|
return reflect.DeepEqual(tc.k, k)
|
||||||
}, "expecting a labels entry")
|
}, "expected %v, got %v", tc.k, k)
|
||||||
require.Condition(t, func() bool {
|
|
||||||
return k.CommonLabels["app"] == "nginx"
|
|
||||||
}, "expecting app:nginx")
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user