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