From 70d101f2e18db4ef96c07bf5029cbfe1e46fb0e6 Mon Sep 17 00:00:00 2001
From: ravineet <rajula.vineet.reddy@cern.ch>
Date: Tue, 9 Nov 2021 11:51:47 +0100
Subject: [PATCH] Add envtest for checking  GitlabWebhookURL on drupalSite
 status

---
 controllers/drupalsite_controller_test.go | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/controllers/drupalsite_controller_test.go b/controllers/drupalsite_controller_test.go
index bbae257c..772140bd 100644
--- a/controllers/drupalsite_controller_test.go
+++ b/controllers/drupalsite_controller_test.go
@@ -39,6 +39,7 @@ import (
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/types"
+	ctrl "sigs.k8s.io/controller-runtime"
 )
 
 // Ginkgo makes it easy to write expressive specs that describe the behavior of your code in an organized manner.
@@ -805,6 +806,7 @@ var _ = Describe("DrupalSite controller", func() {
 				oidcReturnUri := authz.OidcReturnURI{}
 				schedule := velerov1.Schedule{}
 				cronjob := batchbeta1.CronJob{}
+				secret := corev1.Secret{}
 
 				// Check DBOD resource creation
 				By("Expecting Database resource created")
@@ -949,6 +951,23 @@ var _ = Describe("DrupalSite controller", func() {
 					k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob)
 					return cronjob.ObjectMeta.OwnerReferences
 				}, timeout, interval).Should(ContainElement(expectedOwnerReference))
+
+				// Check gitlab webhook secret resource creation
+				By("Expecting Gitlab webhook secret created")
+				Eventually(func() []metav1.OwnerReference {
+					k8sClient.Get(ctx, types.NamespacedName{Name: "gitlab-trigger-secret-" + key.Name, Namespace: key.Namespace}, &secret)
+					return secret.ObjectMeta.OwnerReferences
+				}, timeout, interval).Should(ContainElement(expectedOwnerReference))
+
+				// Check gitlab webhook URL updated on the drupalSite status
+				By("Expecting Gitlab webhook secret created")
+				Eventually(func() bool {
+					cfg, err := ctrl.GetConfig()
+					if err != nil {
+						return false
+					}
+					return cr.Status.GitlabWebhookURL == cfg.Host+"/apis/build.openshift.io/v1/namespaces/"+drupalSiteObject.Namespace+"/buildconfigs/"+"sitebuilder-s2i-"+nameVersionHash(drupalSiteObject)+"/webhooks/"+string(secret.Data["WebHookSecretKey"])+"/gitlab"
+				}, timeout, interval).Should(BeTrue())
 			})
 		})
 	})
-- 
GitLab