github.com/giantswarm/apiextensions/v6@v6.6.0/pkg/crd/functions_test.go (about) 1 package crd 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/apimachinery/pkg/runtime" 11 ) 12 13 var testCRDs = []runtime.Object{ 14 &v1.CustomResourceDefinition{ 15 TypeMeta: metav1.TypeMeta{ 16 APIVersion: crdV1GVK.Version, 17 Kind: crdV1GVK.Kind, 18 }, 19 ObjectMeta: metav1.ObjectMeta{ 20 Name: "examples.example.giantswarm.io", 21 }, 22 Spec: v1.CustomResourceDefinitionSpec{ 23 Group: "example.giantswarm.io", 24 Names: v1.CustomResourceDefinitionNames{ 25 Plural: "examples", 26 Singular: "example", 27 Kind: "Example", 28 ListKind: "ExampleList", 29 Categories: []string{ 30 "example", 31 }, 32 }, 33 }, 34 Status: v1.CustomResourceDefinitionStatus{}, 35 }, 36 } 37 38 const testCRDsYAML = ` 39 --- 40 apiVersion: v1 41 kind: CustomResourceDefinition 42 metadata: 43 creationTimestamp: null 44 name: examples.example.giantswarm.io 45 spec: 46 group: example.giantswarm.io 47 names: 48 categories: 49 - example 50 kind: Example 51 listKind: ExampleList 52 plural: examples 53 singular: example 54 scope: "" 55 versions: null 56 status: 57 acceptedNames: 58 kind: "" 59 plural: "" 60 conditions: null 61 storedVersions: null 62 ` 63 64 func Test_writeCRDs(t *testing.T) { 65 var writer strings.Builder 66 err := writeObjects(&writer, testCRDs) 67 require.Nil(t, err, err) 68 require.Equal(t, writer.String(), testCRDsYAML) 69 }