Start writing a unit-test for buildOpenAPIForApplyModels

This commit is contained in:
Antoine Pelisse 2020-05-04 21:21:46 -07:00 committed by Jefftree
parent aebb47e7f4
commit 216d820f35

View File

@ -29,6 +29,8 @@ import (
"testing"
"time"
"github.com/go-openapi/spec"
"sigs.k8s.io/yaml"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@ -755,3 +757,56 @@ func Test_defaultDeprecationWarning(t *testing.T) {
})
}
}
func TestBuildOpenAPIModelsForApply(t *testing.T) {
// This is a list of validation that we expect to work.
tests := []apiextensionsv1.CustomResourceValidation{
apiextensionsv1.CustomResourceValidation{
OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
Type: "object",
Properties: map[string]apiextensionsv1.JSONSchemaProps{"num": {Type: "integer", Description: "v1beta1 num field"}},
},
},
apiextensionsv1.CustomResourceValidation{
OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{
Type: "",
XIntOrString: true,
},
},
}
for _, test := range tests {
crd := apiextensionsv1.CustomResourceDefinition{
ObjectMeta: metav1.ObjectMeta{Name: "example.stable.example.com", UID: types.UID("12345")},
Spec: apiextensionsv1.CustomResourceDefinitionSpec{
Group: "stable.example.com",
Names: apiextensionsv1.CustomResourceDefinitionNames{
Plural: "examples", Singular: "example", Kind: "Example", ShortNames: []string{"ex"}, ListKind: "ExampleList", Categories: []string{"all"},
},
Conversion: &apiextensionsv1.CustomResourceConversion{Strategy: apiextensionsv1.NoneConverter},
Scope: apiextensionsv1.ClusterScoped,
PreserveUnknownFields: false,
Versions: []apiextensionsv1.CustomResourceDefinitionVersion{
{
Name: "v1beta1", Served: true, Storage: true,
Subresources: &apiextensionsv1.CustomResourceSubresources{Status: &apiextensionsv1.CustomResourceSubresourceStatus{}},
Schema: &test,
},
},
},
}
if _, err := buildOpenAPIModelsForApply(&spec.Swagger{
SwaggerProps: spec.SwaggerProps{
Info: &spec.Info{
InfoProps: spec.InfoProps{
Title: "title",
Version: "v1",
},
},
Swagger: "2.0",
},
}, &crd); err != nil {
t.Fatalf("failed to convert to apply model: %v", err)
}
}
}