Files
portainer/api/kubernetes/cli/nodes_test.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)
}