test(chart): verify per-group version priority

Signed-off-by: Yugo Kobayashi <kobdotsh@gmail.com>
pull/32470/head
Yugo Kobayashi 2 months ago
parent 6bf7572303
commit 87dfbebdf5

@ -23,6 +23,7 @@ import (
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
clientgoscheme "k8s.io/client-go/kubernetes/scheme" clientgoscheme "k8s.io/client-go/kubernetes/scheme"
) )
@ -32,11 +33,17 @@ func TestDefaultVersionSetMatchesScheme(t *testing.T) {
require.NoError(t, apiextensionsv1beta1.AddToScheme(scheme)) require.NoError(t, apiextensionsv1beta1.AddToScheme(scheme))
require.NoError(t, apiextensionsv1.AddToScheme(scheme)) require.NoError(t, apiextensionsv1.AddToScheme(scheme))
groups := scheme.PrioritizedVersionsAllGroups() defaultVersionsByGroup := make(map[string][]string)
schemeVersions := make(VersionSet, 0, len(groups)) for _, apiVersion := range DefaultVersionSet {
for _, group := range groups { groupVersion, err := schema.ParseGroupVersion(apiVersion)
schemeVersions = append(schemeVersions, group.String()) require.NoErrorf(t, err, "invalid API version %q in DefaultVersionSet", apiVersion)
defaultVersionsByGroup[groupVersion.Group] = append(defaultVersionsByGroup[groupVersion.Group], groupVersion.Version)
} }
require.ElementsMatch(t, DefaultVersionSet, schemeVersions, "DefaultVersionSet must stay in sync with the Kubernetes scheme") schemeVersionsByGroup := make(map[string][]string)
for _, groupVersion := range scheme.PrioritizedVersionsAllGroups() {
schemeVersionsByGroup[groupVersion.Group] = append(schemeVersionsByGroup[groupVersion.Group], groupVersion.Version)
}
require.Equal(t, schemeVersionsByGroup, defaultVersionsByGroup, "DefaultVersionSet must stay in sync with the Kubernetes scheme")
} }

Loading…
Cancel
Save