From b17989102ff1838b1426be786685f66617e8631a Mon Sep 17 00:00:00 2001 From: Dinesh Date: Sat, 5 Sep 2020 22:10:28 +0530 Subject: [PATCH] Add tests for daemonset view history Signed-off-by: Dinesh Kubernetes-commit: c88b5e2ef36b4d026ec5852beff404197c199797 --- pkg/polymorphichelpers/history_test.go | 206 ++++++++++++++++++------- 1 file changed, 147 insertions(+), 59 deletions(-) diff --git a/pkg/polymorphichelpers/history_test.go b/pkg/polymorphichelpers/history_test.go index b4d79528..13b204c6 100644 --- a/pkg/polymorphichelpers/history_test.go +++ b/pkg/polymorphichelpers/history_test.go @@ -54,73 +54,74 @@ func TestHistoryViewerFor(t *testing.T) { func TestViewHistory(t *testing.T) { - var ( - trueVar = true - replicas = int32(1) + t.Run("for statefulSet", func(t *testing.T) { + var ( + trueVar = true + replicas = int32(1) - podStub = corev1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, - Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}}, - } + podStub = corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}}, + } - ssStub = &appsv1.StatefulSet{ - ObjectMeta: metav1.ObjectMeta{ - Name: "moons", - Namespace: "default", - UID: "1993", - Labels: map[string]string{"foo": "bar"}, - }, - Spec: appsv1.StatefulSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Replicas: &replicas, Template: podStub}, - } - ) - stsRawData, err := json.Marshal(ssStub) - if err != nil { - t.Fatalf("error creating sts raw data: %v", err) - } - ssStub1 := &appsv1.ControllerRevision{ - ObjectMeta: metav1.ObjectMeta{ - Name: "moons", - Namespace: "default", - Labels: map[string]string{"foo": "bar"}, - OwnerReferences: []metav1.OwnerReference{{"apps/v1", "StatefulSet", "moons", "1993", &trueVar, nil}}, - }, - Data: runtime.RawExtension{Raw: stsRawData}, - TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"}, - Revision: 1, - } - - fakeClientSet := fake.NewSimpleClientset(ssStub) - _, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), ssStub1, metav1.CreateOptions{}) - if err != nil { - t.Fatalf("create controllerRevisions error %v occurred ", err) - } - - var sts = &StatefulSetHistoryViewer{ - fakeClientSet, - } - - t.Run("should show revisions list if the revision is not specified", func(t *testing.T) { - result, err := sts.ViewHistory("default", "moons", 0) + ssStub = &appsv1.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "moons", + Namespace: "default", + UID: "1993", + Labels: map[string]string{"foo": "bar"}, + }, + Spec: appsv1.StatefulSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Replicas: &replicas, Template: podStub}, + } + ) + stsRawData, err := json.Marshal(ssStub) if err != nil { - t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) + t.Fatalf("error creating sts raw data: %v", err) + } + ssStub1 := &appsv1.ControllerRevision{ + ObjectMeta: metav1.ObjectMeta{ + Name: "moons", + Namespace: "default", + Labels: map[string]string{"foo": "bar"}, + OwnerReferences: []metav1.OwnerReference{{"apps/v1", "StatefulSet", "moons", "1993", &trueVar, nil}}, + }, + Data: runtime.RawExtension{Raw: stsRawData}, + TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"}, + Revision: 1, } - expected := `REVISION CHANGE-CAUSE + fakeClientSet := fake.NewSimpleClientset(ssStub) + _, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), ssStub1, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("create controllerRevisions error %v occurred ", err) + } + + var sts = &StatefulSetHistoryViewer{ + fakeClientSet, + } + + t.Run("should show revisions list if the revision is not specified", func(t *testing.T) { + result, err := sts.ViewHistory("default", "moons", 0) + if err != nil { + t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) + } + + expected := `REVISION CHANGE-CAUSE 1 ` - if result != expected { - t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) - } - }) + if result != expected { + t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) + } + }) - t.Run("should describe the revision if revision is specified", func(t *testing.T) { - result, err := sts.ViewHistory("default", "moons", 1) - if err != nil { - t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) - } + t.Run("should describe the revision if revision is specified", func(t *testing.T) { + result, err := sts.ViewHistory("default", "moons", 1) + if err != nil { + t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) + } - expected := `Pod Template: + expected := `Pod Template: Labels: foo=bar Containers: test: @@ -132,9 +133,96 @@ func TestViewHistory(t *testing.T) { Volumes: ` - if result != expected { - t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) + if result != expected { + t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) + } + }) + + }) + + t.Run("for daemonSet", func(t *testing.T) { + var ( + trueVar = true + podStub = corev1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{Labels: map[string]string{"foo": "bar"}}, + Spec: corev1.PodSpec{Containers: []corev1.Container{{Name: "test", Image: "nginx"}}}, + } + + daemonSetStub = &appsv1.DaemonSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "moons", + Namespace: "default", + UID: "1993", + Labels: map[string]string{"foo": "bar"}, + }, + Spec: appsv1.DaemonSetSpec{Selector: &metav1.LabelSelector{MatchLabels: podStub.ObjectMeta.Labels}, Template: podStub}, + } + ) + + daemonSetRaw, err := json.Marshal(daemonSetStub) + if err != nil { + t.Fatalf("error creating sts raw data: %v", err) } + daemonSetControllerRevision := &appsv1.ControllerRevision{ + ObjectMeta: metav1.ObjectMeta{ + Name: "moons", + Namespace: "default", + Labels: map[string]string{"foo": "bar"}, + OwnerReferences: []metav1.OwnerReference{{"apps/v1", "DaemonSet", "moons", "1993", &trueVar, nil}}, + }, + Data: runtime.RawExtension{Raw: daemonSetRaw}, + TypeMeta: metav1.TypeMeta{Kind: "StatefulSet", APIVersion: "apps/v1"}, + Revision: 1, + } + + fakeClientSet := fake.NewSimpleClientset(daemonSetStub) + _, err = fakeClientSet.AppsV1().ControllerRevisions("default").Create(context.TODO(), daemonSetControllerRevision, metav1.CreateOptions{}) + if err != nil { + t.Fatalf("create controllerRevisions error %v occurred ", err) + } + + var daemonSetHistoryViewer = &DaemonSetHistoryViewer{ + fakeClientSet, + } + + t.Run("should show revisions list if the revision is not specified", func(t *testing.T) { + result, err := daemonSetHistoryViewer.ViewHistory("default", "moons", 0) + if err != nil { + t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) + } + + expected := `REVISION CHANGE-CAUSE +1 +` + + if result != expected { + t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) + } + }) + + t.Run("should describe the revision if revision is specified", func(t *testing.T) { + result, err := daemonSetHistoryViewer.ViewHistory("default", "moons", 1) + if err != nil { + t.Fatalf("error getting ViewHistory for a StatefulSets moons: %v", err) + } + + expected := `Pod Template: + Labels: foo=bar + Containers: + test: + Image: nginx + Port: + Host Port: + Environment: + Mounts: + Volumes: +` + + if result != expected { + t.Fatalf("unexpected output (%v was expected but got %v)", expected, result) + } + }) + }) }