test(resource-policy): verify behavior of non-standard policy types
Signed-off-by: Jacob LeGrone <git@jacob.work>
This commit is contained in:
parent
55fbed95d5
commit
ce4c3f51ad
|
@ -213,7 +213,7 @@ func TestUpdate(t *testing.T) {
|
|||
|
||||
// Test resource policy is respected
|
||||
actions = nil
|
||||
listA.Items[2].ObjectMeta.Annotations = map[string]string{ResourcePolicyAnno: KeepPolicy}
|
||||
listA.Items[2].ObjectMeta.Annotations = map[string]string{ResourcePolicyAnno: "keep"}
|
||||
if err := c.Update(v1.NamespaceDefault, objBody(&listA), objBody(&listB), false, false, 0, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
Copyright The Helm Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kube
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestResourcePolicyIsKeep(t *testing.T) {
|
||||
type annotations map[string]string
|
||||
type testcase struct {
|
||||
annotations
|
||||
keep bool
|
||||
}
|
||||
cases := []testcase{
|
||||
{nil, false},
|
||||
{
|
||||
annotations{
|
||||
"foo": "bar",
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
annotations{
|
||||
ResourcePolicyAnno: "keep",
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
annotations{
|
||||
ResourcePolicyAnno: "KEEP ",
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
annotations{
|
||||
ResourcePolicyAnno: "",
|
||||
},
|
||||
true,
|
||||
},
|
||||
{
|
||||
annotations{
|
||||
ResourcePolicyAnno: "delete",
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
annotations{
|
||||
ResourcePolicyAnno: "DELETE",
|
||||
},
|
||||
true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
if tc.keep != ResourcePolicyIsKeep(tc.annotations) {
|
||||
t.Errorf("Expected function to return %t for annotations %v", tc.keep, tc.annotations)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -89,13 +89,22 @@ spec:
|
|||
|
||||
var manifestWithKeep = `kind: ConfigMap
|
||||
metadata:
|
||||
name: test-cm-keep
|
||||
name: test-cm-keep-a
|
||||
annotations:
|
||||
"helm.sh/resource-policy": keep
|
||||
data:
|
||||
name: value
|
||||
`
|
||||
|
||||
var manifestWithKeepEmpty = `kind: ConfigMap
|
||||
metadata:
|
||||
name: test-cm-keep-b
|
||||
annotations:
|
||||
"helm.sh/resource-policy": ""
|
||||
data:
|
||||
name: value
|
||||
`
|
||||
|
||||
var manifestWithUpgradeHooks = `kind: ConfigMap
|
||||
metadata:
|
||||
name: test-cm
|
||||
|
@ -449,23 +458,27 @@ func releaseWithKeepStub(rlsName string) *release.Release {
|
|||
Name: "bunnychart",
|
||||
},
|
||||
Templates: []*chart.Template{
|
||||
{Name: "templates/configmap", Data: []byte(manifestWithKeep)},
|
||||
{Name: "templates/configmap-keep-a", Data: []byte(manifestWithKeep)},
|
||||
{Name: "templates/configmap-keep-b", Data: []byte(manifestWithKeepEmpty)},
|
||||
},
|
||||
}
|
||||
|
||||
date := timestamp.Timestamp{Seconds: 242085845, Nanos: 0}
|
||||
return &release.Release{
|
||||
rl := &release.Release{
|
||||
Name: rlsName,
|
||||
Info: &release.Info{
|
||||
FirstDeployed: &date,
|
||||
LastDeployed: &date,
|
||||
Status: &release.Status{Code: release.Status_DEPLOYED},
|
||||
},
|
||||
Chart: ch,
|
||||
Config: &chart.Config{Raw: `name: value`},
|
||||
Version: 1,
|
||||
Manifest: manifestWithKeep,
|
||||
Chart: ch,
|
||||
Config: &chart.Config{Raw: `name: value`},
|
||||
Version: 1,
|
||||
}
|
||||
|
||||
helm.RenderReleaseMock(rl, false)
|
||||
|
||||
return rl
|
||||
}
|
||||
|
||||
func MockEnvironment() *environment.Environment {
|
||||
|
|
|
@ -150,7 +150,10 @@ func TestUninstallReleaseWithKeepPolicy(t *testing.T) {
|
|||
if res.Info == "" {
|
||||
t.Errorf("Expected response info to not be empty")
|
||||
} else {
|
||||
if !strings.Contains(res.Info, "[ConfigMap] test-cm-keep") {
|
||||
if !strings.Contains(res.Info, "[ConfigMap] test-cm-keep-a") {
|
||||
t.Errorf("unexpected output: %s", res.Info)
|
||||
}
|
||||
if !strings.Contains(res.Info, "[ConfigMap] test-cm-keep-b") {
|
||||
t.Errorf("unexpected output: %s", res.Info)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue