-
Notifications
You must be signed in to change notification settings - Fork 0
/
manifest_test.go
110 lines (105 loc) · 1.92 KB
/
manifest_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package main
import (
"gopkg.in/yaml.v2"
"testing"
)
func TestParse(t *testing.T) {
var data = `
apiVersion: apps/v1
kind: Deployment
metadata:
name: artifactory
namespace: default
labels:
app: artifactory
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: artifactory
spec:
containers:
- name: artifactory
image: docker.bintray.io/jfrog/artifactory-oss
ports:
- containerPort: 8081
name: rest
- containerPort: 8082
name: ui
selector:
matchLabels:
app: artifactory
`
manifests := parseManifests(data)
manifest := manifests[0]
if manifest.Namespace() != "default" {
t.Fatal("Expected `default` namespace got: ", manifest)
}
}
func TestPatchWithExistingNameSpace(t *testing.T) {
manifest := Manifest{
data: yaml.MapSlice{
{
Key: "metadata",
Value: yaml.MapSlice{
{
Key: "namespace",
Value: "default",
},
},
},
},
}
patch := Patch{
Namespace: "dev",
Resources: nil,
}
res := manifest.patch(patch)
if res.Namespace() != "dev" {
t.Fatal("Expected `dev` namespace got: ", res)
}
}
func TestPatchWithNoNamespace(t *testing.T) {
manifest := Manifest{
data: yaml.MapSlice{
{
Key: "metadata",
Value: yaml.MapSlice{},
},
},
}
patch := Patch{
Namespace: "dev",
Resources: nil,
}
res := manifest.patch(patch)
if res.Namespace() != "dev" {
t.Fatal("Expected `dev` namespace got: ", res)
}
}
func TestPatch_ShouldNotPatchEmpty(t *testing.T) {
manifest := Manifest{
data: yaml.MapSlice{
{
Key: "metadata",
Value: yaml.MapSlice{
{
Key: "namespace",
Value: "default",
},
},
},
},
}
patch := Patch{
Namespace: "",
Resources: nil,
}
res := manifest.patch(patch)
if res.Namespace() != "default" {
t.Fatal("Expected `default` namespace got: ", res)
}
}