package helper import ( "testing" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestNodeReady(t *testing.T) { tests := []struct { name string node *corev1.Node expected bool }{ { name: "ready", node: &corev1.Node{ TypeMeta: metav1.TypeMeta{ Kind: "Node", APIVersion: "v1", }, ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, Status: corev1.NodeStatus{ Conditions: []corev1.NodeCondition{ { Type: corev1.NodeReady, Status: corev1.ConditionTrue, }, { Type: corev1.NodeMemoryPressure, Status: corev1.ConditionTrue, }, }, }, }, expected: true, }, { name: "not ready with NodeReady condition false", node: &corev1.Node{ TypeMeta: metav1.TypeMeta{ Kind: "Node", APIVersion: "v1", }, ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, Status: corev1.NodeStatus{ Conditions: []corev1.NodeCondition{ { Type: corev1.NodeReady, Status: corev1.ConditionFalse, }, }, }, }, expected: false, }, { name: "not ready with no NodeReady condition", node: &corev1.Node{ TypeMeta: metav1.TypeMeta{ Kind: "Node", APIVersion: "v1", }, ObjectMeta: metav1.ObjectMeta{ Namespace: "foo", Name: "bar", }, Status: corev1.NodeStatus{ Conditions: []corev1.NodeCondition{ { Type: corev1.NodeMemoryPressure, Status: corev1.ConditionTrue, }, }, }, }, expected: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { res := NodeReady(tt.node) if res != tt.expected { t.Errorf("NodeReady() = %v, want %v", res, tt.expected) } }) } }