Move TestGetAPIResourceList to its own file
Because it is now testing multiple api types
This commit is contained in:
parent
cf56c67329
commit
548874a641
96
test/integration/api_discovery_test.go
Normal file
96
test/integration/api_discovery_test.go
Normal file
@ -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
|
||||||
|
}
|
@ -151,84 +151,3 @@ func TestLoginRequest_ShouldFailWhenRequestDoesNotIncludeToken(t *testing.T) {
|
|||||||
require.Empty(t, response.Spec)
|
require.Empty(t, response.Spec)
|
||||||
require.Nil(t, response.Status.Credential)
|
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
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user