Skip to content

Commit aa737a5

Browse files
committed
Refactor HypervisorMaintenanceControllerTest
- Fix the name of the controller - tc is copy-pasta from traitscontroller, let's call it controller - HypervisorServiceController was only changed in code but not in the string - Use k8sClient in the tests directly instead of going through the controller - Move the reconciliation to JustBeforeEach, as we have always have to do that.
1 parent f154d9e commit aa737a5

1 file changed

Lines changed: 23 additions & 19 deletions

File tree

internal/controller/hypervisor_maintenance_controller_test.go

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ import (
3434
kvmv1 "github.com/cobaltcore-dev/openstack-hypervisor-operator/api/v1"
3535
)
3636

37-
var _ = Describe("HypervisorServiceController", func() {
37+
var _ = Describe("HypervisorMaintenanceController", func() {
3838
var (
39-
tc *HypervisorMaintenanceController
39+
controller *HypervisorMaintenanceController
4040
fakeServer testhelper.FakeServer
4141
hypervisorName = types.NamespacedName{Name: "hv-test"}
4242
)
@@ -81,8 +81,8 @@ var _ = Describe("HypervisorServiceController", func() {
8181
By("Setting up the OpenStack http mock server")
8282
fakeServer = testhelper.SetupHTTP()
8383

84-
By("Creating the HypervisorServiceController")
85-
tc = &HypervisorMaintenanceController{
84+
By("Creating the HypervisorMaintenanceController")
85+
controller = &HypervisorMaintenanceController{
8686
Client: k8sClient,
8787
Scheme: k8sClient.Scheme(),
8888
computeClient: client.ServiceClient(fakeServer),
@@ -99,11 +99,18 @@ var _ = Describe("HypervisorServiceController", func() {
9999
Expect(k8sClient.Create(ctx, hypervisor)).To(Succeed())
100100
})
101101

102+
// After the setup in JustBefore, we want to reconcile
103+
JustBeforeEach(func(ctx context.Context) {
104+
req := ctrl.Request{NamespacedName: hypervisorName}
105+
_, err := controller.Reconcile(ctx, req)
106+
Expect(err).NotTo(HaveOccurred())
107+
})
108+
102109
AfterEach(func() {
103110
By("Deleting the Hypervisor resource")
104111
hypervisor := &kvmv1.Hypervisor{}
105-
Expect(tc.Client.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
106-
Expect(tc.Client.Delete(ctx, hypervisor)).To(Succeed())
112+
Expect(k8sClient.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
113+
Expect(k8sClient.Delete(ctx, hypervisor)).To(Succeed())
107114

108115
By("Tearing down the OpenStack http mock server")
109116
fakeServer.Teardown()
@@ -113,7 +120,7 @@ var _ = Describe("HypervisorServiceController", func() {
113120
Context("Onboarded Hypervisor", func() {
114121
BeforeEach(func() {
115122
hypervisor := &kvmv1.Hypervisor{}
116-
Expect(tc.Client.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
123+
Expect(k8sClient.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
117124
hypervisor.Status.ServiceID = "1234"
118125
meta.SetStatusCondition(&hypervisor.Status.Conditions,
119126
metav1.Condition{
@@ -131,25 +138,22 @@ var _ = Describe("HypervisorServiceController", func() {
131138
Context("Spec.Maintenance=\"\"", func() {
132139
BeforeEach(func() {
133140
hypervisor := &kvmv1.Hypervisor{}
134-
Expect(tc.Client.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
141+
Expect(k8sClient.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
135142
hypervisor.Spec.Maintenance = ""
136-
Expect(tc.Client.Update(ctx, hypervisor)).To(Succeed())
143+
Expect(k8sClient.Update(ctx, hypervisor)).To(Succeed())
137144
expectedBody := `{"status": "enabled"}`
138145
mockServiceUpdate(expectedBody)
139-
req := ctrl.Request{NamespacedName: hypervisorName}
140-
_, err := tc.Reconcile(ctx, req)
141-
Expect(err).NotTo(HaveOccurred())
142146
})
143147

144148
It("should set the ConditionTypeHypervisorDisabled to false", func() {
145149
updated := &kvmv1.Hypervisor{}
146-
Expect(tc.Client.Get(ctx, hypervisorName, updated)).To(Succeed())
150+
Expect(k8sClient.Get(ctx, hypervisorName, updated)).To(Succeed())
147151
Expect(meta.IsStatusConditionFalse(updated.Status.Conditions, kvmv1.ConditionTypeHypervisorDisabled)).To(BeTrue())
148152
})
149153

150154
It("should set the ConditionTypeReady to true", func() {
151155
updated := &kvmv1.Hypervisor{}
152-
Expect(tc.Client.Get(ctx, hypervisorName, updated)).To(Succeed())
156+
Expect(k8sClient.Get(ctx, hypervisorName, updated)).To(Succeed())
153157
Expect(updated.Status.Conditions).To(ContainElement(
154158
SatisfyAll(
155159
HaveField("Type", kvmv1.ConditionTypeReady),
@@ -163,25 +167,25 @@ var _ = Describe("HypervisorServiceController", func() {
163167
Context(fmt.Sprintf("Spec.Maintenance=\"%v\"", mode), func() {
164168
BeforeEach(func() {
165169
hypervisor := &kvmv1.Hypervisor{}
166-
Expect(tc.Client.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
170+
Expect(k8sClient.Get(ctx, hypervisorName, hypervisor)).To(Succeed())
167171
hypervisor.Spec.Maintenance = mode
168-
Expect(tc.Client.Update(ctx, hypervisor)).To(Succeed())
172+
Expect(k8sClient.Update(ctx, hypervisor)).To(Succeed())
169173
expectedBody := fmt.Sprintf(`{"disabled_reason": "Hypervisor CRD: spec.maintenance=%v", "status": "disabled"}`, mode)
170174
mockServiceUpdate(expectedBody)
171175
req := ctrl.Request{NamespacedName: hypervisorName}
172-
_, err := tc.Reconcile(ctx, req)
176+
_, err := controller.Reconcile(ctx, req)
173177
Expect(err).NotTo(HaveOccurred())
174178
})
175179

176180
It("should set the ConditionTypeHypervisorDisabled to true", func() {
177181
updated := &kvmv1.Hypervisor{}
178-
Expect(tc.Client.Get(ctx, hypervisorName, updated)).To(Succeed())
182+
Expect(k8sClient.Get(ctx, hypervisorName, updated)).To(Succeed())
179183
Expect(meta.IsStatusConditionTrue(updated.Status.Conditions, kvmv1.ConditionTypeHypervisorDisabled)).To(BeTrue())
180184
})
181185

182186
It("should set the ConditionTypeReady to false", func() {
183187
updated := &kvmv1.Hypervisor{}
184-
Expect(tc.Client.Get(ctx, hypervisorName, updated)).To(Succeed())
188+
Expect(k8sClient.Get(ctx, hypervisorName, updated)).To(Succeed())
185189
Expect(updated.Status.Conditions).To(ContainElement(
186190
SatisfyAll(
187191
HaveField("Type", kvmv1.ConditionTypeReady),

0 commit comments

Comments
 (0)