mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
111 lines
1.8 KiB
Go
111 lines
1.8 KiB
Go
package doc
|
|
|
|
import (
|
|
"reflect"
|
|
"sort"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseYAML(t *testing.T) {
|
|
testCases := []struct {
|
|
identifiers []string
|
|
values []string
|
|
yaml string
|
|
}{
|
|
{
|
|
identifiers: []string{
|
|
"namePrefix",
|
|
"metadata",
|
|
"metadata:name",
|
|
"kind",
|
|
},
|
|
values: []string{
|
|
"namePrefix=dev-",
|
|
"metadata:name=app",
|
|
"kind=Deployment",
|
|
},
|
|
yaml: `
|
|
namePrefix: dev-
|
|
metadata:
|
|
name: app
|
|
kind: Deployment
|
|
`,
|
|
},
|
|
{
|
|
identifiers: []string{
|
|
"namePrefix",
|
|
"metadata",
|
|
"metadata:name",
|
|
"metadata:spec",
|
|
"metadata:spec:replicas",
|
|
"kind",
|
|
"replicas",
|
|
"replicas:name",
|
|
"replicas:count",
|
|
"resource",
|
|
},
|
|
values: []string{
|
|
"namePrefix=dev-",
|
|
"metadata:name=n1",
|
|
"metadata:spec:replicas=3",
|
|
"kind=Deployment",
|
|
"replicas:name=n1",
|
|
"replicas:name=n2",
|
|
"replicas:count=3",
|
|
"resource=file1.yaml",
|
|
"resource=file2.yaml",
|
|
},
|
|
yaml: `
|
|
namePrefix: dev-
|
|
# map of map
|
|
metadata:
|
|
name: n1
|
|
spec:
|
|
replicas: 3
|
|
kind: Deployment
|
|
|
|
#list of map
|
|
replicas:
|
|
- name: n1
|
|
count: 3
|
|
- name: n2
|
|
count: 3
|
|
|
|
# list
|
|
resource:
|
|
- file1.yaml
|
|
- file2.yaml
|
|
`,
|
|
},
|
|
}
|
|
|
|
for _, test := range testCases {
|
|
doc := KustomizationDocument{
|
|
DocumentData: test.yaml,
|
|
FilePath: "example/path/kustomization.yaml",
|
|
}
|
|
|
|
err := doc.ParseYAML()
|
|
if err != nil {
|
|
t.Errorf("Document error error: %s", err)
|
|
}
|
|
|
|
cmpStrings := func(got, expected []string, label string) {
|
|
sort.Strings(got)
|
|
sort.Strings(expected)
|
|
|
|
if !reflect.DeepEqual(got, expected) {
|
|
t.Errorf("Expected %s (%v) to be equal to (%v)\n",
|
|
label,
|
|
strings.Join(got, ","),
|
|
strings.Join(expected, ","))
|
|
}
|
|
|
|
}
|
|
|
|
cmpStrings(doc.Identifiers, test.identifiers, "identifiers")
|
|
cmpStrings(doc.Values, test.values, "values")
|
|
}
|
|
}
|