feat(): increased test coverage and added simple workflow to build OCI image
This commit is contained in:
73
internal/kube_test.go
Normal file
73
internal/kube_test.go
Normal file
@@ -0,0 +1,73 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user