65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package cli
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
corev1 "k8s.io/api/core/v1"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
kfake "k8s.io/client-go/kubernetes/fake"
|
|
)
|
|
|
|
func TestGetClusterNodes_ReturnsAllNodes(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
nodeList := &corev1.NodeList{
|
|
Items: []corev1.Node{
|
|
{ObjectMeta: metav1.ObjectMeta{Name: "node-0"}},
|
|
{ObjectMeta: metav1.ObjectMeta{Name: "node-1"}},
|
|
},
|
|
}
|
|
|
|
kcl := &KubeClient{cli: kfake.NewSimpleClientset(nodeList)}
|
|
|
|
got, err := kcl.GetClusterNodes()
|
|
require.NoError(t, err)
|
|
assert.Len(t, got, 2)
|
|
assert.Equal(t, "node-0", got[0].Name)
|
|
assert.Equal(t, "node-1", got[1].Name)
|
|
}
|
|
|
|
func TestGetClusterNodes_EmptyCluster(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
kcl := &KubeClient{cli: kfake.NewSimpleClientset()}
|
|
|
|
got, err := kcl.GetClusterNodes()
|
|
require.NoError(t, err)
|
|
assert.Empty(t, got)
|
|
}
|
|
|
|
func TestGetClusterNodes_StripsManagedFields(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
nodeList := &corev1.NodeList{
|
|
Items: []corev1.Node{
|
|
{
|
|
ObjectMeta: metav1.ObjectMeta{
|
|
Name: "node-0",
|
|
ManagedFields: []metav1.ManagedFieldsEntry{
|
|
{Manager: "kubectl"},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
kcl := &KubeClient{cli: kfake.NewSimpleClientset(nodeList)}
|
|
|
|
got, err := kcl.GetClusterNodes()
|
|
require.NoError(t, err)
|
|
require.Len(t, got, 1)
|
|
assert.Nil(t, got[0].ManagedFields)
|
|
}
|