package edgeinjector import ( "testing" "edge-infra.dev/pkg/edge/datasync/couchdb" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func TestCommonLabels(t *testing.T) { pod := &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ "injector.edge.ncr.com/couchdb-user": couchdb.ReadOnlyUser, "injector.edge.ncr.com/add-node-information": "true", "injector.edge.ncr.com/type": "direct", "injector.edge.ncr.com/node-secret": "node-secret-1", "injector.edge.ncr.com/couchdb-secret": "couch-secret-1", }, Annotations: map[string]string{ "injector.edge.ncr.com/containers": "nginx,podinfo", }, }, Spec: corev1.PodSpec{ Containers: []corev1.Container{ { Name: "nginx", Image: "nginx:10", }, { Name: "busybox", Image: "busybox:2.1", }, { Name: "podinfo", Image: "podinfo:10.4", }, }, }, } assert.Equal(t, couchdb.ReadOnlyUser, WebhookLabelValue(pod, CouchDBUser)) assert.Equal(t, "true", WebhookLabelValue(pod, Node)) assert.Equal(t, couchdb.ReadOnlyUser, CouchDBUserRole(pod)) assert.Equal(t, DirectType, InjectionType(pod)) assert.Equal(t, "node-secret-1", SecretLabelValue(pod, NodeSecret)) assert.Equal(t, "couch-secret-1", SecretLabelValue(pod, CouchDBSecret)) assert.Equal(t, []string{"nginx", "podinfo"}, Containers(pod)) } func TestOtherLabels(t *testing.T) { pod := &corev1.Pod{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ "injector.edge.ncr.com/couchdb-user": couchdb.CreateViewUser, "injector.edge.ncr.com/type": "reference", }, }, Spec: corev1.PodSpec{ Containers: []corev1.Container{ { Name: "nginx", Image: "nginx:10", }, { Name: "busybox", Image: "busybox:2.1", }, { Name: "podinfo", Image: "podinfo:10.4", }, }, }, } assert.Equal(t, couchdb.CreateViewUser, WebhookLabelValue(pod, CouchDBUser)) assert.Equal(t, Reference, InjectionType(pod)) assert.Nil(t, Containers(pod)) }