package internal import ( "context" "testing" coordv1 "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes/fake" ) func TestGetNodeNameFromLease_Valid(t *testing.T) { l := coordv1.Lease{} l.Name = "cilium-l2announce-1" hi := "aa-bb-node1" l.Spec.HolderIdentity = &hi node, err := GetNodeNameFromLease(l) if err != nil { t.Fatalf("unexpected error: %v", err) } if node != "node1" { t.Fatalf("unexpected node name: got %s", node) } } func TestGetNodeNameFromLease_Invalid(t *testing.T) { l := coordv1.Lease{} l.Name = "cilium-l2announce-2" hi := "too-short" l.Spec.HolderIdentity = &hi _, err := GetNodeNameFromLease(l) if err == nil { t.Fatalf("expected error for invalid holder identity") } } func TestApplyLabelToNode_WithFakeClient(t *testing.T) { client := fake.NewSimpleClientset() node := &corev1.Node{ ObjectMeta: metav1.ObjectMeta{ Name: "test-node", Labels: map[string]string{}, }, } _, err := client.CoreV1().Nodes().Create(context.TODO(), node, metav1.CreateOptions{}) if err != nil { t.Fatalf("failed to create fake node: %v", err) } cfg := &Config{CiliumLabel: "mylabel", DryRun: false} err = ApplyLabelToNode(client, "test-node", "lease-1", cfg) if err != nil { t.Fatalf("ApplyLabelToNode failed: %v", err) } updated, err := client.CoreV1().Nodes().Get(context.TODO(), "test-node", metav1.GetOptions{}) if err != nil { t.Fatalf("failed to get node: %v", err) } if updated.Labels["mylabel"] != "true" { t.Fatalf("expected label set on node, got: %v", updated.Labels) } if updated.Labels["cilium.uploadfilter24.eu/lease"] != "lease-1" { t.Fatalf("expected lease label set on node, got: %v", updated.Labels) } }