Add some kyaml filters for k8s metadata.

This commit is contained in:
jregan
2020-11-17 16:53:32 -08:00
parent 8a77494c7d
commit f7613631d1
2 changed files with 136 additions and 0 deletions

View File

@@ -5,6 +5,8 @@ package yaml
import (
"testing"
"github.com/stretchr/testify/assert"
)
var input = `apiVersion: v1
@@ -16,6 +18,72 @@ data:
enableRisky: "false"
`
func TestSetK8sData(t *testing.T) {
rn := MustParse(`apiVersion: v1
kind: ConfigMap
data:
altGreeting: "Good Morning!"
`)
_, err := rn.Pipe(
SetK8sData("foo", "bar"),
SetK8sData("fruit", "apple"),
SetK8sData("veggie", "celery"))
assert.NoError(t, err)
output := rn.MustString()
expected := `apiVersion: v1
kind: ConfigMap
data:
altGreeting: "Good Morning!"
foo: bar
fruit: apple
veggie: celery
`
if output != expected {
t.Fatalf("expected \n%s\nbut got \n%s\n", expected, output)
}
}
func TestSetK8sDataForbidOverwrite(t *testing.T) {
rn := MustParse(`apiVersion: v1
kind: ConfigMap
data:
altGreeting: "Good Morning!"
`)
_, err := rn.Pipe(
SetK8sData("foo", "bar"),
SetK8sData("altGreeting", "hey"),
SetK8sData("veggie", "celery"))
assert.EqualError(
t, err, "protecting existing altGreeting='\"Good Morning!\"' "+
"against attempt to add new value 'hey'")
}
func TestSetMeta(t *testing.T) {
rn := MustParse(`apiVersion: v1
kind: ConfigMap
data:
altGreeting: "Good Morning!"
`)
_, err := rn.Pipe(SetK8sName("foo"), SetK8sNamespace("bar"))
if err != nil {
t.Fatalf("unexpected error %v", err)
}
output := rn.MustString()
expected := `apiVersion: v1
kind: ConfigMap
data:
altGreeting: "Good Morning!"
metadata:
name: foo
namespace: bar
`
if output != expected {
t.Fatalf("expected \n%s\nbut got \n%s\n", expected, output)
}
}
func TestSetLabel1(t *testing.T) {
rn := MustParse(input)
_, err := rn.Pipe(SetLabel("foo", "bar"))