Skip to content

Commit 6037d5a

Browse files
authored
Merge pull request #6 from linoyaslan/consolidate_tests
refactor: consolidate tests
2 parents ac5d089 + a40c6a5 commit 6037d5a

6 files changed

Lines changed: 24 additions & 226 deletions

File tree

api/v1alpha1/dpfhcpbridge_types_test.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -262,32 +262,6 @@ var _ = Describe("DPFHCPBridge API Types", func() {
262262
})
263263
})
264264

265-
Context("DPUClusterReference", func() {
266-
It("should correctly represent a cross-namespace reference", func() {
267-
ref := DPUClusterReference{
268-
Name: "test-dpu",
269-
Namespace: "dpu-system",
270-
}
271-
272-
Expect(ref.Name).To(Equal("test-dpu"))
273-
Expect(ref.Namespace).To(Equal("dpu-system"))
274-
})
275-
276-
It("should be settable in DPFHCPBridge spec", func() {
277-
bridge := &DPFHCPBridge{
278-
Spec: DPFHCPBridgeSpec{
279-
DPUClusterRef: DPUClusterReference{
280-
Name: "cross-ns-dpu",
281-
Namespace: "another-namespace",
282-
},
283-
},
284-
}
285-
286-
Expect(bridge.Spec.DPUClusterRef.Name).To(Equal("cross-ns-dpu"))
287-
Expect(bridge.Spec.DPUClusterRef.Namespace).To(Equal("another-namespace"))
288-
})
289-
})
290-
291265
Context("NodeSelector", func() {
292266
It("should allow empty/nil NodeSelector (optional field)", func() {
293267
bridge := &DPFHCPBridge{

internal/controller/dpfhcpbridge_controller.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,6 @@ func (r *DPFHCPBridgeReconciler) secretToRequests(ctx context.Context, obj clien
358358
}
359359

360360
// updatePhaseFromConditions computes the phase based on all conditions
361-
// This follows the Kubernetes pattern where phase is derived from conditions,
362-
// not set by individual features (similar to NVIDIA DPUCluster controller)
363361
func (r *DPFHCPBridgeReconciler) updatePhaseFromConditions(cr *provisioningv1alpha1.DPFHCPBridge) {
364362
// List of validation conditions that must pass before provisioning
365363
// Order matters: check critical validations first

internal/controller/dpfhcpbridge_controller_test.go

Lines changed: 0 additions & 108 deletions
This file was deleted.

internal/controller/dpfhcpbridge_crd_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,30 @@ var _ = Describe("DPFHCPBridge CRD Schema Validation Tests", func() {
143143
err := k8sClient.Create(ctx, bridge)
144144
Expect(err).To(HaveOccurred())
145145
})
146+
147+
It("should reject CR missing required baseDomain field", func() {
148+
bridge := &provisioningv1alpha1.DPFHCPBridge{
149+
ObjectMeta: metav1.ObjectMeta{
150+
Name: "missing-required",
151+
Namespace: "default",
152+
},
153+
Spec: provisioningv1alpha1.DPFHCPBridgeSpec{
154+
DPUClusterRef: provisioningv1alpha1.DPUClusterReference{
155+
Name: "test-dpu",
156+
Namespace: "dpu-system",
157+
},
158+
// BaseDomain missing (required field)
159+
OCPReleaseImage: "quay.io/openshift-release-dev/ocp-release:4.19.0-ec.5-multi",
160+
SSHKeySecretRef: corev1.LocalObjectReference{Name: "test-ssh-key"},
161+
PullSecretRef: corev1.LocalObjectReference{Name: "test-pull-secret"},
162+
EtcdStorageClass: "test-storage-class",
163+
ControlPlaneAvailabilityPolicy: hyperv1.SingleReplica,
164+
},
165+
}
166+
167+
err := k8sClient.Create(ctx, bridge)
168+
Expect(err).To(HaveOccurred(), "Missing required field should be rejected by CRD validation")
169+
})
146170
})
147171

148172
Context("Enum Validation", func() {

internal/controller/dpfhcpbridge_integration_test.go

Lines changed: 0 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ var _ = Describe("DPFHCPBridge Integration Tests with envtest", func() {
9393
initialGeneration := toUpdate.Generation
9494
// Update only mutable fields
9595
toUpdate.Spec.OCPReleaseImage = "quay.io/openshift-release-dev/ocp-release:4.19.0-ec.6-multi"
96-
toUpdate.Spec.VirtualIP = "192.168.1.100"
9796

9897
err = k8sClient.Update(ctx, toUpdate)
9998
Expect(err).NotTo(HaveOccurred())
@@ -103,7 +102,6 @@ var _ = Describe("DPFHCPBridge Integration Tests with envtest", func() {
103102
err = k8sClient.Get(ctx, types.NamespacedName{Name: bridgeName, Namespace: "default"}, updated)
104103
Expect(err).NotTo(HaveOccurred())
105104
Expect(updated.Spec.OCPReleaseImage).To(Equal("quay.io/openshift-release-dev/ocp-release:4.19.0-ec.6-multi"))
106-
Expect(updated.Spec.VirtualIP).To(Equal("192.168.1.100"))
107105
Expect(updated.Generation).To(BeNumerically(">", initialGeneration))
108106

109107
// DELETE
@@ -241,91 +239,6 @@ var _ = Describe("DPFHCPBridge Integration Tests with envtest", func() {
241239
})
242240
})
243241

244-
Context("CRD Validation with envtest", func() {
245-
It("should reject CR with invalid baseDomain at API server level", func() {
246-
bridge := &provisioningv1alpha1.DPFHCPBridge{
247-
ObjectMeta: metav1.ObjectMeta{
248-
Name: "invalid-domain",
249-
Namespace: "default",
250-
},
251-
Spec: provisioningv1alpha1.DPFHCPBridgeSpec{
252-
DPUClusterRef: provisioningv1alpha1.DPUClusterReference{
253-
Name: "test-dpu",
254-
Namespace: "dpu-system",
255-
},
256-
BaseDomain: "INVALID.DOMAIN.COM", // Uppercase not allowed
257-
OCPReleaseImage: "quay.io/openshift-release-dev/ocp-release:4.19.0-ec.5-multi",
258-
SSHKeySecretRef: corev1.LocalObjectReference{Name: "test-ssh-key"},
259-
PullSecretRef: corev1.LocalObjectReference{Name: "test-pull-secret"},
260-
EtcdStorageClass: "test-storage-class",
261-
ControlPlaneAvailabilityPolicy: hyperv1.SingleReplica,
262-
},
263-
}
264-
265-
err := k8sClient.Create(ctx, bridge)
266-
Expect(err).To(HaveOccurred(), "Invalid baseDomain should be rejected by CRD validation")
267-
})
268-
269-
It("should reject CR missing required fields at API server level", func() {
270-
bridge := &provisioningv1alpha1.DPFHCPBridge{
271-
ObjectMeta: metav1.ObjectMeta{
272-
Name: "missing-required",
273-
Namespace: "default",
274-
},
275-
Spec: provisioningv1alpha1.DPFHCPBridgeSpec{
276-
DPUClusterRef: provisioningv1alpha1.DPUClusterReference{
277-
Name: "test-dpu",
278-
Namespace: "dpu-system",
279-
},
280-
// Missing BaseDomain (required)
281-
OCPReleaseImage: "quay.io/openshift-release-dev/ocp-release:4.19.0-ec.5-multi",
282-
SSHKeySecretRef: corev1.LocalObjectReference{Name: "test-ssh-key"},
283-
PullSecretRef: corev1.LocalObjectReference{Name: "test-pull-secret"},
284-
EtcdStorageClass: "test-storage-class",
285-
ControlPlaneAvailabilityPolicy: hyperv1.SingleReplica,
286-
},
287-
}
288-
289-
err := k8sClient.Create(ctx, bridge)
290-
Expect(err).To(HaveOccurred(), "Missing required field should be rejected by CRD validation")
291-
})
292-
293-
It("should apply defaults when optional fields are omitted", func() {
294-
bridge := &provisioningv1alpha1.DPFHCPBridge{
295-
ObjectMeta: metav1.ObjectMeta{
296-
Name: "test-defaults-applied",
297-
Namespace: "default",
298-
},
299-
Spec: provisioningv1alpha1.DPFHCPBridgeSpec{
300-
DPUClusterRef: provisioningv1alpha1.DPUClusterReference{
301-
Name: "test-dpu",
302-
Namespace: "dpu-system",
303-
},
304-
BaseDomain: "defaults.example.com",
305-
OCPReleaseImage: "quay.io/openshift-release-dev/ocp-release:4.19.0-ec.5-multi",
306-
SSHKeySecretRef: corev1.LocalObjectReference{Name: "test-ssh-key"},
307-
PullSecretRef: corev1.LocalObjectReference{Name: "test-pull-secret"},
308-
EtcdStorageClass: "test-storage-class",
309-
VirtualIP: "192.168.1.100", // Required for HighlyAvailable default
310-
// Optional fields omitted - defaults should be applied
311-
},
312-
}
313-
314-
err := k8sClient.Create(ctx, bridge)
315-
Expect(err).NotTo(HaveOccurred())
316-
317-
created := &provisioningv1alpha1.DPFHCPBridge{}
318-
err = k8sClient.Get(ctx, types.NamespacedName{Name: "test-defaults-applied", Namespace: "default"}, created)
319-
Expect(err).NotTo(HaveOccurred())
320-
321-
// Verify defaults
322-
Expect(created.Spec.ControlPlaneAvailabilityPolicy).To(Equal(hyperv1.HighlyAvailable))
323-
324-
// Clean up
325-
_ = k8sClient.Delete(ctx, bridge)
326-
})
327-
})
328-
329242
Context("List Operations", func() {
330243
It("should list multiple DPFHCPBridge resources", func() {
331244
// Create multiple bridges

internal/controller/dpucluster/validator_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,9 +257,6 @@ var _ = Describe("DPUCluster Validator", func() {
257257
Expect(condition.Reason).To(Equal(ReasonDPUClusterDeleted))
258258
Expect(condition.Message).To(ContainSubstring("has been deleted"))
259259
Expect(condition.Message).To(ContainSubstring("Please delete this DPFHCPBridge to clean up"))
260-
261-
// Event emission is verified in other tests
262-
// Skipping event check here as the critical functionality (status/condition update) is verified above
263260
})
264261
})
265262

0 commit comments

Comments
 (0)