github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/tests/release/service/release_plan_owner_ref.go (about) 1 package service 2 3 import ( 4 "fmt" 5 "time" 6 7 . "github.com/onsi/ginkgo/v2" 8 . "github.com/onsi/gomega" 9 "k8s.io/apimachinery/pkg/api/errors" 10 11 "github.com/redhat-appstudio/e2e-tests/pkg/framework" 12 "github.com/redhat-appstudio/e2e-tests/pkg/utils" 13 releasecommon "github.com/redhat-appstudio/e2e-tests/tests/release" 14 releaseApi "github.com/redhat-appstudio/release-service/api/v1alpha1" 15 ) 16 17 var _ = framework.ReleaseServiceSuiteDescribe("[HACBS-2469]test-releaseplan-owner-ref-added", Label("release-service", "releaseplan-ownerref", "HACBS"), func() { 18 defer GinkgoRecover() 19 var fw *framework.Framework 20 var err error 21 var devNamespace string 22 var releasePlan *releaseApi.ReleasePlan 23 var releasePlanOwnerReferencesTimeout = 1 * time.Minute 24 AfterEach(framework.ReportFailure(&fw)) 25 26 BeforeAll(func() { 27 fw, err = framework.NewFramework(utils.GetGeneratedNamespace("rp-ownerref")) 28 Expect(err).NotTo(HaveOccurred()) 29 devNamespace = fw.UserNamespace 30 31 _, err = fw.AsKubeAdmin.HasController.CreateApplication(releasecommon.ApplicationNameDefault, devNamespace) 32 Expect(err).NotTo(HaveOccurred()) 33 34 _, err = fw.AsKubeAdmin.ReleaseController.CreateReleasePlan(releasecommon.SourceReleasePlanName, devNamespace, releasecommon.ApplicationNameDefault, "managed", "true", nil) 35 Expect(err).NotTo(HaveOccurred()) 36 }) 37 38 AfterAll(func() { 39 if !CurrentSpecReport().Failed() { 40 Expect(fw.SandboxController.DeleteUserSignup(fw.UserName)).To(BeTrue()) 41 } 42 }) 43 44 var _ = Describe("ReleasePlan verification", Ordered, func() { 45 It("verifies that the ReleasePlan has an owner reference for the application", func() { 46 Eventually(func() error { 47 releasePlan, err = fw.AsKubeAdmin.ReleaseController.GetReleasePlan(releasecommon.SourceReleasePlanName, devNamespace) 48 Expect(err).NotTo(HaveOccurred()) 49 50 if len(releasePlan.OwnerReferences) != 1 { 51 return fmt.Errorf("OwnerReference not updated yet for ReleasePlan %s", releasePlan.Name) 52 } 53 54 ownerRef := releasePlan.OwnerReferences[0] 55 if ownerRef.Name != releasecommon.ApplicationNameDefault { 56 return fmt.Errorf("ReleasePlan %s have OwnerReference Name %s and it's not as expected in Application Name %s", releasePlan.Name, ownerRef.Name, releasecommon.ApplicationNameDefault) 57 } 58 return nil 59 }, releasePlanOwnerReferencesTimeout, releasecommon.DefaultInterval).Should(Succeed(), "timed out waiting for ReleasePlan OwnerReference to be set.") 60 }) 61 62 It("verifies that the ReleasePlan is deleted if the application is deleted", func() { 63 Expect(fw.AsKubeAdmin.HasController.DeleteApplication(releasecommon.ApplicationNameDefault, devNamespace, true)).To(Succeed()) 64 Eventually(func() error { 65 releasePlan, err = fw.AsKubeAdmin.ReleaseController.GetReleasePlan(releasecommon.SourceReleasePlanName, devNamespace) 66 if !errors.IsNotFound(err) { 67 return fmt.Errorf("ReleasePlan %s for application %s still not deleted\n", releasePlan.GetName(), releasecommon.ApplicationNameDefault) 68 } 69 return nil 70 }, 1*time.Minute, releasecommon.DefaultInterval).Should(Succeed(), "timed out waiting for ReleasePlan to be deleted in %s namespace", devNamespace) 71 }) 72 }) 73 })