add test for Builder to cover kustomization directories

This commit is contained in:
Jingfang Liu 2018-12-12 09:42:19 -08:00
parent 26c07715c7
commit d349998abe
5 changed files with 95 additions and 18 deletions

View File

@ -0,0 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: the-map
data:
altGreeting: "Good Morning!"
enableRisky: "false"

View File

@ -0,0 +1,30 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: the-deployment
spec:
replicas: 3
template:
metadata:
labels:
deployment: hello
spec:
containers:
- name: the-container
image: monopole/hello:1
command: ["/hello",
"--port=8080",
"--enableRiskyFeature=$(ENABLE_RISKY)"]
ports:
- containerPort: 8080
env:
- name: ALT_GREETING
valueFrom:
configMapKeyRef:
name: the-map
key: altGreeting
- name: ENABLE_RISKY
valueFrom:
configMapKeyRef:
name: the-map
key: enableRisky

View File

@ -0,0 +1,5 @@
nameprefix: test-
resources:
- deployment.yaml
- service.yaml
- configMap.yaml

View File

@ -0,0 +1,13 @@
kind: Service
apiVersion: v1
metadata:
name: the-service
spec:
selector:
deployment: hello
type: LoadBalancer
ports:
- protocol: TCP
port: 8666
targetPort: 8080

View File

@ -465,27 +465,48 @@ func TestPathBuilderWithMultipleInvalid(t *testing.T) {
}
func TestDirectoryBuilder(t *testing.T) {
b := newDefaultBuilder().
FilenameParam(false, &FilenameOptions{Recursive: false, Filenames: []string{"../../../artifacts/guestbook"}}).
NamespaceParam("test").DefaultNamespace()
test := &testVisitor{}
singleItemImplied := false
err := b.Do().IntoSingleItemImplied(&singleItemImplied).Visit(test.Handle)
if err != nil || singleItemImplied || len(test.Infos) < 3 {
t.Fatalf("unexpected response: %v %t %#v", err, singleItemImplied, test.Infos)
tests := []struct {
directories []string
singleItem bool
number int
expectedNames []string
}{
{[]string{"../../../artifacts/guestbook"}, false, 3, []string{"redis-master"}},
{[]string{"../../../artifacts/kustomization"}, true, 3, []string{"test-the-deployment"}},
{[]string{"../../../artifacts/guestbook", "../../../artifacts/kustomization"}, false, 6, []string{"redis-master", "test-the-deployment"}},
}
found := false
for _, info := range test.Infos {
if info.Name == "redis-master" && info.Namespace == "test" && info.Object != nil {
found = true
break
for _, tt := range tests {
b := newDefaultBuilder().
FilenameParam(false, &FilenameOptions{Recursive: false, EnableKustomization: true, Filenames: tt.directories}).
NamespaceParam("test").DefaultNamespace()
test := &testVisitor{}
singleItemImplied := false
err := b.Do().IntoSingleItemImplied(&singleItemImplied).Visit(test.Handle)
if err != nil || singleItemImplied != tt.singleItem || len(test.Infos) < tt.number {
t.Fatalf("unexpected response: %v %t %#v", err, singleItemImplied, test.Infos)
}
contained := func(name string) bool {
for _, info := range test.Infos {
if info.Name == name && info.Namespace == "test" && info.Object != nil {
return true
}
}
return false
}
allFound := true
for _, name := range tt.expectedNames {
if !contained(name) {
allFound = false
}
}
if !allFound {
t.Errorf("unexpected responses: %#v", test.Infos)
}
}
if !found {
t.Errorf("unexpected responses: %#v", test.Infos)
}
}