...
1 package komega
2
3 import (
4 "testing"
5
6 . "github.com/onsi/gomega"
7 appsv1 "k8s.io/api/apps/v1"
8 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9 "k8s.io/utils/ptr"
10 )
11
12 func TestDefaultGet(t *testing.T) {
13 g := NewWithT(t)
14
15 fc := createFakeClient()
16 SetClient(fc)
17
18 fetched := appsv1.Deployment{
19 ObjectMeta: metav1.ObjectMeta{
20 Namespace: "default",
21 Name: "test",
22 },
23 }
24 g.Eventually(Get(&fetched)).Should(Succeed())
25
26 g.Expect(*fetched.Spec.Replicas).To(BeEquivalentTo(5))
27 }
28
29 func TestDefaultList(t *testing.T) {
30 g := NewWithT(t)
31
32 fc := createFakeClient()
33 SetClient(fc)
34
35 list := appsv1.DeploymentList{}
36 g.Eventually(List(&list)).Should(Succeed())
37
38 g.Expect(list.Items).To(HaveLen(1))
39 depl := exampleDeployment()
40 g.Expect(list.Items[0]).To(And(
41 HaveField("ObjectMeta.Name", Equal(depl.ObjectMeta.Name)),
42 HaveField("ObjectMeta.Namespace", Equal(depl.ObjectMeta.Namespace)),
43 ))
44 }
45
46 func TestDefaultUpdate(t *testing.T) {
47 g := NewWithT(t)
48
49 fc := createFakeClient()
50 SetClient(fc)
51
52 updateDeployment := appsv1.Deployment{
53 ObjectMeta: exampleDeployment().ObjectMeta,
54 }
55 g.Eventually(Update(&updateDeployment, func() {
56 updateDeployment.Annotations = map[string]string{"updated": "true"}
57 })).Should(Succeed())
58
59 fetched := appsv1.Deployment{
60 ObjectMeta: exampleDeployment().ObjectMeta,
61 }
62 g.Expect(Object(&fetched)()).To(HaveField("ObjectMeta.Annotations", HaveKeyWithValue("updated", "true")))
63 }
64
65 func TestDefaultUpdateStatus(t *testing.T) {
66 g := NewWithT(t)
67
68 fc := createFakeClient()
69 SetClient(fc)
70
71 updateDeployment := appsv1.Deployment{
72 ObjectMeta: exampleDeployment().ObjectMeta,
73 }
74 g.Eventually(UpdateStatus(&updateDeployment, func() {
75 updateDeployment.Status.AvailableReplicas = 1
76 })).Should(Succeed())
77
78 fetched := appsv1.Deployment{
79 ObjectMeta: exampleDeployment().ObjectMeta,
80 }
81 g.Expect(Object(&fetched)()).To(HaveField("Status.AvailableReplicas", BeEquivalentTo(1)))
82 }
83
84 func TestDefaultObject(t *testing.T) {
85 g := NewWithT(t)
86
87 fc := createFakeClient()
88 SetClient(fc)
89
90 fetched := appsv1.Deployment{
91 ObjectMeta: metav1.ObjectMeta{
92 Namespace: "default",
93 Name: "test",
94 },
95 }
96 g.Eventually(Object(&fetched)).Should(And(
97 Not(BeNil()),
98 HaveField("Spec.Replicas", Equal(ptr.To(int32(5)))),
99 ))
100 }
101
102 func TestDefaultObjectList(t *testing.T) {
103 g := NewWithT(t)
104
105 fc := createFakeClient()
106 SetClient(fc)
107
108 list := appsv1.DeploymentList{}
109 g.Eventually(ObjectList(&list)).Should(And(
110 Not(BeNil()),
111 HaveField("Items", And(
112 HaveLen(1),
113 ContainElement(HaveField("Spec.Replicas", Equal(ptr.To(int32(5))))),
114 )),
115 ))
116 }
117
View as plain text