From 3cc169713e1112a3795a668c342985d603b56630 Mon Sep 17 00:00:00 2001 From: Vegard Engen Date: Sat, 25 Oct 2025 22:16:30 +0200 Subject: [PATCH] Fix test cleanup to handle missing resources gracefully Make AfterEach cleanup blocks more robust by only attempting to delete resources if they exist. This prevents test failures when resources have already been deleted or don't exist. Changes: - Check if resource exists before attempting deletion - Only call Delete if Get succeeds (err == nil) - Applied to all 5 controller test files This fixes intermittent test failures in GitHub Actions where AfterEach was failing with resource not found errors. --- internal/controller/firewallgroup_controller_test.go | 8 ++++---- internal/controller/firewallpolicy_controller_test.go | 8 ++++---- internal/controller/firewallzone_controller_test.go | 8 ++++---- .../controller/networkconfiguration_controller_test.go | 8 ++++---- internal/controller/portforward_controller_test.go | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/internal/controller/firewallgroup_controller_test.go b/internal/controller/firewallgroup_controller_test.go index ec37660..7bc56fc 100644 --- a/internal/controller/firewallgroup_controller_test.go +++ b/internal/controller/firewallgroup_controller_test.go @@ -61,10 +61,10 @@ var _ = Describe("FirewallGroup Controller", func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &unifiv1beta1.FirewallGroup{} err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) - - By("Cleanup the specific resource instance FirewallGroup") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + if err == nil { + By("Cleanup the specific resource instance FirewallGroup") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + } }) It("should successfully reconcile the resource", func() { By("Reconciling the created resource") diff --git a/internal/controller/firewallpolicy_controller_test.go b/internal/controller/firewallpolicy_controller_test.go index 6fb3d72..30e1598 100644 --- a/internal/controller/firewallpolicy_controller_test.go +++ b/internal/controller/firewallpolicy_controller_test.go @@ -61,10 +61,10 @@ var _ = Describe("FirewallPolicy Controller", func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &unifiv1beta1.FirewallPolicy{} err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) - - By("Cleanup the specific resource instance FirewallPolicy") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + if err == nil { + By("Cleanup the specific resource instance FirewallPolicy") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + } }) It("should successfully reconcile the resource", func() { By("Reconciling the created resource") diff --git a/internal/controller/firewallzone_controller_test.go b/internal/controller/firewallzone_controller_test.go index f5c22b2..cfd7172 100644 --- a/internal/controller/firewallzone_controller_test.go +++ b/internal/controller/firewallzone_controller_test.go @@ -61,10 +61,10 @@ var _ = Describe("FirewallZone Controller", func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &unifiv1beta1.FirewallZone{} err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) - - By("Cleanup the specific resource instance FirewallZone") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + if err == nil { + By("Cleanup the specific resource instance FirewallZone") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + } }) It("should successfully reconcile the resource", func() { By("Reconciling the created resource") diff --git a/internal/controller/networkconfiguration_controller_test.go b/internal/controller/networkconfiguration_controller_test.go index f1a1107..508760e 100644 --- a/internal/controller/networkconfiguration_controller_test.go +++ b/internal/controller/networkconfiguration_controller_test.go @@ -61,10 +61,10 @@ var _ = Describe("Networkconfiguration Controller", func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &unifiv1beta1.Networkconfiguration{} err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) - - By("Cleanup the specific resource instance Networkconfiguration") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + if err == nil { + By("Cleanup the specific resource instance Networkconfiguration") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + } }) It("should successfully reconcile the resource", func() { By("Reconciling the created resource") diff --git a/internal/controller/portforward_controller_test.go b/internal/controller/portforward_controller_test.go index 1ba9241..074c35b 100644 --- a/internal/controller/portforward_controller_test.go +++ b/internal/controller/portforward_controller_test.go @@ -61,10 +61,10 @@ var _ = Describe("PortForward Controller", func() { // TODO(user): Cleanup logic after each test, like removing the resource instance. resource := &unifiv1beta1.PortForward{} err := k8sClient.Get(ctx, typeNamespacedName, resource) - Expect(err).NotTo(HaveOccurred()) - - By("Cleanup the specific resource instance PortForward") - Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + if err == nil { + By("Cleanup the specific resource instance PortForward") + Expect(k8sClient.Delete(ctx, resource)).To(Succeed()) + } }) It("should successfully reconcile the resource", func() { By("Reconciling the created resource")