mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Add tests for kustomization.go
This commit is contained in:
184
api/types/kustomization_test.go
Normal file
184
api/types/kustomization_test.go
Normal file
@@ -0,0 +1,184 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func fixKustomizationPostUnmarshallingCheck(k, e *Kustomization) bool {
|
||||
return (k.Kind == e.Kind && k.APIVersion == e.APIVersion &&
|
||||
len(k.Resources) == len(e.Resources) && k.Resources[0] == e.Resources[0] &&
|
||||
k.Bases == nil)
|
||||
}
|
||||
|
||||
func TestFixKustomizationPostUnmarshalling(t *testing.T) {
|
||||
var k Kustomization
|
||||
k.Bases = append(k.Bases, "foo")
|
||||
k.FixKustomizationPostUnmarshalling()
|
||||
|
||||
expected := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: KustomizationKind,
|
||||
APIVersion: KustomizationVersion,
|
||||
},
|
||||
Resources: []string{"foo"},
|
||||
}
|
||||
|
||||
if !fixKustomizationPostUnmarshallingCheck(&k, &expected) {
|
||||
t.Fatalf("unexpected ouput: %v", k)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFixKustomizationPostUnmarshalling_2(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: ComponentKind,
|
||||
},
|
||||
}
|
||||
k.Bases = append(k.Bases, "foo")
|
||||
k.FixKustomizationPostUnmarshalling()
|
||||
|
||||
expected := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: ComponentKind,
|
||||
APIVersion: ComponentVersion,
|
||||
},
|
||||
Resources: []string{"foo"},
|
||||
}
|
||||
|
||||
if !fixKustomizationPostUnmarshallingCheck(&k, &expected) {
|
||||
t.Fatalf("unexpected ouput: %v", k)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnforceFields_InvalidKindAndVersion(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: "foo",
|
||||
APIVersion: "bar",
|
||||
},
|
||||
}
|
||||
|
||||
errs := k.EnforceFields()
|
||||
if len(errs) != 2 {
|
||||
t.Fatalf("number of errors should be 2 but got: %v", errs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnforceFields_InvalidKind(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: "foo",
|
||||
APIVersion: KustomizationVersion,
|
||||
},
|
||||
}
|
||||
|
||||
errs := k.EnforceFields()
|
||||
if len(errs) != 1 {
|
||||
t.Fatalf("number of errors should be 1 but got: %v", errs)
|
||||
}
|
||||
|
||||
expected := "kind should be " + KustomizationKind + " or " + ComponentKind
|
||||
if errs[0] != expected {
|
||||
t.Fatalf("error should be %v but got: %v", expected, errs[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnforceFields_InvalidVersion(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: KustomizationKind,
|
||||
APIVersion: "bar",
|
||||
},
|
||||
}
|
||||
|
||||
errs := k.EnforceFields()
|
||||
if len(errs) != 1 {
|
||||
t.Fatalf("number of errors should be 1 but got: %v", errs)
|
||||
}
|
||||
|
||||
expected := "apiVersion for " + k.Kind + " should be " + KustomizationVersion
|
||||
if errs[0] != expected {
|
||||
t.Fatalf("error should be %v but got: %v", expected, errs[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnforceFields_ComponentKind(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: ComponentKind,
|
||||
APIVersion: "bar",
|
||||
},
|
||||
}
|
||||
|
||||
errs := k.EnforceFields()
|
||||
if len(errs) != 1 {
|
||||
t.Fatalf("number of errors should be 1 but got: %v", errs)
|
||||
}
|
||||
|
||||
expected := "apiVersion for " + k.Kind + " should be " + ComponentVersion
|
||||
if errs[0] != expected {
|
||||
t.Fatalf("error should be %v but got: %v", expected, errs[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnforceFields(t *testing.T) {
|
||||
k := Kustomization{
|
||||
TypeMeta: TypeMeta{
|
||||
Kind: KustomizationKind,
|
||||
APIVersion: KustomizationVersion,
|
||||
},
|
||||
}
|
||||
|
||||
errs := k.EnforceFields()
|
||||
if len(errs) != 0 {
|
||||
t.Fatalf("number of errors should be 0 but got: %v", errs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnmarshal(t *testing.T) {
|
||||
y := []byte(`
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- foo
|
||||
- bar
|
||||
nameSuffix: dog
|
||||
namePrefix: cat`)
|
||||
var k Kustomization
|
||||
err := k.Unmarshal(y)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if k.Kind != KustomizationKind || k.APIVersion != KustomizationVersion ||
|
||||
len(k.Resources) != 2 || k.NamePrefix != "cat" || k.NameSuffix != "dog" {
|
||||
t.Fatalf("wrong unmarshal result: %v", k)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnmarshal_UnkownField(t *testing.T) {
|
||||
y := []byte(`
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
unknown: foo`)
|
||||
var k Kustomization
|
||||
err := k.Unmarshal(y)
|
||||
if err == nil {
|
||||
t.Fatalf("expect an error")
|
||||
}
|
||||
expect := "json: unknown field \"unknown\""
|
||||
if err.Error() != expect {
|
||||
t.Fatalf("expect %v but got: %v", expect, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnmarshal_InvalidYaml(t *testing.T) {
|
||||
y := []byte(`
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
unknown`)
|
||||
var k Kustomization
|
||||
err := k.Unmarshal(y)
|
||||
if err == nil {
|
||||
t.Fatalf("expect an error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user