Skip to content

Commit d90349f

Browse files
committed
Address comments from PR review: added e2e, improve unit
1 parent 5d45a4a commit d90349f

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

pkg/controller/operators/operator_controller_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,8 @@ var _ = Describe("Operator Controller", func() {
7171

7272
AfterEach(func() {
7373
for _, obj := range objs {
74-
Expect(k8sClient.Get(ctx, testobj.NamespacedName(obj), obj.(client.Object))).To(Succeed())
7574
Expect(k8sClient.Delete(ctx, obj.(client.Object), deleteOpts)).To(Succeed())
7675
}
77-
Expect(k8sClient.Get(ctx, name, operator)).To(Succeed())
7876
Expect(k8sClient.Delete(ctx, operator, deleteOpts)).To(Succeed())
7977
})
8078

@@ -108,7 +106,6 @@ var _ = Describe("Operator Controller", func() {
108106
})
109107

110108
AfterEach(func() {
111-
Expect(k8sClient.Get(ctx, name, operator)).To(Succeed())
112109
Expect(k8sClient.Delete(ctx, operator, deleteOpts)).To(Succeed())
113110
})
114111

@@ -143,7 +140,6 @@ var _ = Describe("Operator Controller", func() {
143140

144141
AfterEach(func() {
145142
for _, obj := range objs {
146-
Expect(k8sClient.Get(ctx, testobj.NamespacedName(obj), obj.(client.Object))).To(Succeed())
147143
Expect(k8sClient.Delete(ctx, obj.(client.Object), deleteOpts)).To(Succeed())
148144
}
149145
})

test/e2e/operator_test.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ var _ = Describe("Operator", func() {
6666
// 10. Ensure the reference to sa-b is eventually removed from o's status.components.refs field
6767
// 11. Delete ns-a
6868
// 12. Ensure the reference to ns-a is eventually removed from o's status.components.refs field
69+
// 13. Delete o
70+
// 14. Ensure o is re-created
71+
// 15. Delete ns-b and o
72+
// 16. Ensure o is not re-created
6973
It("should surface components in its status", func() {
7074
o := &operatorsv1.Operator{}
7175
o.SetName(genName("o-"))
@@ -196,6 +200,39 @@ var _ = Describe("Operator", func() {
196200
// Ensure the reference to ns-a is eventually removed from o's status.components.refs field
197201
By("removing a component's reference when it no longer exists")
198202
componentRefEventuallyExists(w, false, getReference(scheme, nsA))
203+
204+
// Delete o
205+
Eventually(func() error {
206+
err := client.Delete(clientCtx, o)
207+
if err != nil && !apierrors.IsNotFound(err) {
208+
return err
209+
}
210+
return nil
211+
}).Should(Succeed())
212+
213+
// Ensure that o is eventually recreated (because some of its components still exist).
214+
By("recreating the Operator when any components still exist")
215+
Eventually(func() error {
216+
return client.Get(clientCtx, types.NamespacedName{Name: o.GetName()}, o)
217+
}).Should(Succeed())
218+
219+
// Delete ns-b and o
220+
Eventually(func() error {
221+
if err := client.Delete(clientCtx, nsB); err != nil && !apierrors.IsNotFound(err) {
222+
return err
223+
}
224+
if err := client.Delete(clientCtx, o); err != nil && !apierrors.IsNotFound(err) {
225+
return err
226+
}
227+
return nil
228+
}).Should(Succeed())
229+
230+
// Ensure that o is consistently not found
231+
By("verifying the Operator is permanently deleted if it has no components")
232+
Consistently(func() bool {
233+
err := client.Get(clientCtx, types.NamespacedName{Name: o.GetName()}, o)
234+
return apierrors.IsNotFound(err)
235+
}).Should(BeTrue())
199236
})
200237

201238
Context("when a subscription to a package exists", func() {

0 commit comments

Comments
 (0)