...
1
2
3
4 package schema_test
5
6 import (
7 "testing"
8
9 "github.com/stretchr/testify/assert"
10 "k8s.io/kube-openapi/pkg/validation/spec"
11 "sigs.k8s.io/kustomize/kyaml/openapi"
12 "sigs.k8s.io/kustomize/kyaml/yaml"
13 . "sigs.k8s.io/kustomize/kyaml/yaml/schema"
14 )
15
16 func TestIsAssociativeNoSchema(t *testing.T) {
17 assert.False(t, IsAssociative(nil, []*yaml.RNode{}, false))
18 }
19
20 func makeSchema() *spec.Schema {
21 return &spec.Schema{
22 VendorExtensible: spec.VendorExtensible{
23 Extensions: make(map[string]interface{}),
24 },
25 }
26 }
27
28 func TestIsAssociativeSimpleStrategy(t *testing.T) {
29 s := makeSchema()
30 s.Extensions["x-kubernetes-patch-merge-key"] = "name"
31 s.Extensions["x-kubernetes-patch-strategy"] = "merge"
32 assert.True(
33 t,
34 IsAssociative(
35 &openapi.ResourceSchema{Schema: s},
36 []*yaml.RNode{}, false))
37 }
38
39 func TestIsAssociativeMultipleStrategy(t *testing.T) {
40 s := makeSchema()
41 s.Extensions["x-kubernetes-patch-merge-key"] = "name"
42 s.Extensions["x-kubernetes-patch-strategy"] = "retainKeys,merge"
43 assert.True(
44 t,
45 IsAssociative(
46 &openapi.ResourceSchema{Schema: s},
47 []*yaml.RNode{}, false))
48 }
49
View as plain text