From 548874a641a707d5524eab6a821dd0618ade7ead Mon Sep 17 00:00:00 2001 From: Ryan Richard Date: Fri, 31 Jul 2020 17:37:59 -0700 Subject: [PATCH] Move TestGetAPIResourceList to its own file Because it is now testing multiple api types --- test/integration/api_discovery_test.go | 96 ++++++++++++++++++++++++++ test/integration/loginrequest_test.go | 81 ---------------------- 2 files changed, 96 insertions(+), 81 deletions(-) create mode 100644 test/integration/api_discovery_test.go diff --git a/test/integration/api_discovery_test.go b/test/integration/api_discovery_test.go new file mode 100644 index 000000000..c4ca2303c --- /dev/null +++ b/test/integration/api_discovery_test.go @@ -0,0 +1,96 @@ +/* +Copyright 2020 VMware, Inc. +SPDX-License-Identifier: Apache-2.0 +*/ + +package integration + +import ( + "testing" + + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + "github.com/suzerain-io/placeholder-name/test/library" +) + +func TestGetAPIResourceList(t *testing.T) { + client := library.NewPlaceholderNameClientset(t) + + groups, resources, err := client.Discovery().ServerGroupsAndResources() + require.NoError(t, err) + + groupName := "placeholder.suzerain-io.github.io" + actualGroup := findGroup(groupName, groups) + require.NotNil(t, actualGroup) + + expectedGroup := &metav1.APIGroup{ + Name: "placeholder.suzerain-io.github.io", + Versions: []metav1.GroupVersionForDiscovery{ + { + GroupVersion: "placeholder.suzerain-io.github.io/v1alpha1", + Version: "v1alpha1", + }, + }, + PreferredVersion: metav1.GroupVersionForDiscovery{ + GroupVersion: "placeholder.suzerain-io.github.io/v1alpha1", + Version: "v1alpha1", + }, + } + require.Equal(t, expectedGroup, actualGroup) + + actualPlaceHolderResources := findResources("placeholder.suzerain-io.github.io/v1alpha1", resources) + require.NotNil(t, actualPlaceHolderResources) + actualCrdsPlaceHolderResources := findResources("crds.placeholder.suzerain-io.github.io/v1alpha1", resources) + require.NotNil(t, actualPlaceHolderResources) + + expectedLoginRequestAPIResource := metav1.APIResource{ + Name: "loginrequests", + Kind: "LoginRequest", + SingularName: "", // TODO(akeesler): what should this be? + Verbs: metav1.Verbs([]string{ + "create", + }), + Namespaced: false, + } + + expectedLDCAPIResource := metav1.APIResource{ + Name: "logindiscoveryconfigs", + SingularName: "logindiscoveryconfig", + Namespaced: true, + Kind: "LoginDiscoveryConfig", + Verbs: metav1.Verbs([]string{ + "delete", "deletecollection", "get", "list", "patch", "create", "update", "watch", + }), + ShortNames: []string{"ldc"}, + StorageVersionHash: "unknown: to be filled in automatically below", + } + + require.Len(t, actualPlaceHolderResources.APIResources, 1) + require.Equal(t, expectedLoginRequestAPIResource, actualPlaceHolderResources.APIResources[0]) + + require.Len(t, actualCrdsPlaceHolderResources.APIResources, 1) + actualAPIResource := actualCrdsPlaceHolderResources.APIResources[0] + // workaround because its hard to predict the storage version hash (e.g. "t/+v41y+3e4=") + // so just don't worry about comparing that field + expectedLDCAPIResource.StorageVersionHash = actualAPIResource.StorageVersionHash + require.Equal(t, expectedLDCAPIResource, actualAPIResource) +} + +func findGroup(name string, groups []*metav1.APIGroup) *metav1.APIGroup { + for _, group := range groups { + if group.Name == name { + return group + } + } + return nil +} + +func findResources(groupVersion string, resources []*metav1.APIResourceList) *metav1.APIResourceList { + for _, resource := range resources { + if resource.GroupVersion == groupVersion { + return resource + } + } + return nil +} diff --git a/test/integration/loginrequest_test.go b/test/integration/loginrequest_test.go index 57ffaadef..38ec35377 100644 --- a/test/integration/loginrequest_test.go +++ b/test/integration/loginrequest_test.go @@ -151,84 +151,3 @@ func TestLoginRequest_ShouldFailWhenRequestDoesNotIncludeToken(t *testing.T) { require.Empty(t, response.Spec) require.Nil(t, response.Status.Credential) } - -func TestGetAPIResourceList(t *testing.T) { - client := library.NewPlaceholderNameClientset(t) - - groups, resources, err := client.Discovery().ServerGroupsAndResources() - require.NoError(t, err) - - groupName := "placeholder.suzerain-io.github.io" - actualGroup := findGroup(groupName, groups) - require.NotNil(t, actualGroup) - - expectedGroup := &metav1.APIGroup{ - Name: "placeholder.suzerain-io.github.io", - Versions: []metav1.GroupVersionForDiscovery{ - { - GroupVersion: "placeholder.suzerain-io.github.io/v1alpha1", - Version: "v1alpha1", - }, - }, - PreferredVersion: metav1.GroupVersionForDiscovery{ - GroupVersion: "placeholder.suzerain-io.github.io/v1alpha1", - Version: "v1alpha1", - }, - } - require.Equal(t, expectedGroup, actualGroup) - - actualPlaceHolderResources := findResources("placeholder.suzerain-io.github.io/v1alpha1", resources) - require.NotNil(t, actualPlaceHolderResources) - actualCrdsPlaceHolderResources := findResources("crds.placeholder.suzerain-io.github.io/v1alpha1", resources) - require.NotNil(t, actualPlaceHolderResources) - - expectedLoginRequestAPIResource := metav1.APIResource{ - Name: "loginrequests", - Kind: "LoginRequest", - SingularName: "", // TODO(akeesler): what should this be? - Verbs: metav1.Verbs([]string{ - "create", - }), - Namespaced: false, - } - - expectedLDCAPIResource := metav1.APIResource{ - Name: "logindiscoveryconfigs", - SingularName: "logindiscoveryconfig", - Namespaced: true, - Kind: "LoginDiscoveryConfig", - Verbs: metav1.Verbs([]string{ - "delete", "deletecollection", "get", "list", "patch", "create", "update", "watch", - }), - ShortNames: []string{"ldc"}, - StorageVersionHash: "unknown: to be filled in automatically below", - } - - require.Len(t, actualPlaceHolderResources.APIResources, 1) - require.Equal(t, expectedLoginRequestAPIResource, actualPlaceHolderResources.APIResources[0]) - - require.Len(t, actualCrdsPlaceHolderResources.APIResources, 1) - actualAPIResource := actualCrdsPlaceHolderResources.APIResources[0] - // workaround because its hard to predict the storage version hash (e.g. "t/+v41y+3e4=") - // so just don't worry about comparing that field - expectedLDCAPIResource.StorageVersionHash = actualAPIResource.StorageVersionHash - require.Equal(t, expectedLDCAPIResource, actualAPIResource) -} - -func findGroup(name string, groups []*metav1.APIGroup) *metav1.APIGroup { - for _, group := range groups { - if group.Name == name { - return group - } - } - return nil -} - -func findResources(groupVersion string, resources []*metav1.APIResourceList) *metav1.APIResourceList { - for _, resource := range resources { - if resource.GroupVersion == groupVersion { - return resource - } - } - return nil -}