...

Source file src/sigs.k8s.io/kustomize/kyaml/yaml/schema/schema_test.go

Documentation: sigs.k8s.io/kustomize/kyaml/yaml/schema

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     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