From f927d83ef88af4fe46d782ac77ab2afe43a8878c Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 9 Apr 2024 21:54:56 +0200
Subject: [PATCH] OZG-3328 cleanup and add helm unittests;OZG-5115 update helm
 unittest command

---
 run_helm_test.sh                              |  2 +-
 ...d-secret.yaml => api_password_secret.yaml} |  0
 ...ull-secret.yaml => image_pull_secret.yaml} |  0
 ...k-user-crd.yaml => keycloak_user_crd.yaml} |  0
 src/test/helm/api-password-secret_test.yaml   | 29 ------
 src/test/helm/api_password_secret_test.yaml   | 64 +++++++++++++
 src/test/helm/cert_issuer_test.yaml           |  2 +
 ...yment_container_security_context_test.yaml |  4 +-
 .../helm/deployment_default_spec_test.yaml    | 96 +++++++++++++++++++
 .../helm/deployment_defaults_labels_test.yaml | 20 +---
 ...aults_topologySpreadConstraints_test.yaml} | 29 +++---
 src/test/helm/deployment_env_test.yaml        | 11 ++-
 .../deployment_imagepull_secret_test.yaml     |  4 -
 ...l => deployment_keycloak_values_test.yaml} | 12 ++-
 ...ment_mongodb_passwort_secretref_test.yaml} |  0
 .../deployment_optional_trust_store_test.yaml |  2 +-
 src/test/helm/deployment_probes_test.yaml     | 10 +-
 .../deployment_realm_name_length_test.yaml    |  1 -
 src/test/helm/deployment_resources_test.yaml  |  3 +-
 ...st.yaml => deployment_url_value_test.yaml} |  0
 ..._general_value_and_default_spec_test.yaml} | 51 +++++++---
 src/test/helm/imagepull_secret_test.yaml      |  2 +-
 src/test/helm/ingress_nginx_cors_test.yaml    |  2 -
 ...inx-tests.yaml => ingress_nginx_test.yaml} |  6 ++
 ...-test.yaml => keycloak_user_crd_test.yaml} | 37 +------
 ...erator_secrets_read_role_binding_test.yaml |  2 +-
 ...cloak_operator_secrets_read_role_test.yaml |  2 +-
 ...rator_secrets_write_role_binding_test.yaml |  2 +-
 ...loak_operator_secrets_write_role_test.yaml |  2 +-
 src/test/helm/service_account_test.yaml       |  4 +-
 src/test/helm/service_monitor_test.yaml       | 25 +++++
 src/test/helm/service_test.yaml               | 24 +++++
 32 files changed, 309 insertions(+), 139 deletions(-)
 rename src/main/helm/templates/{api-password-secret.yaml => api_password_secret.yaml} (100%)
 rename src/main/helm/templates/{image-pull-secret.yaml => image_pull_secret.yaml} (100%)
 rename src/main/helm/templates/{keycloak-user-crd.yaml => keycloak_user_crd.yaml} (100%)
 delete mode 100644 src/test/helm/api-password-secret_test.yaml
 create mode 100644 src/test/helm/api_password_secret_test.yaml
 create mode 100644 src/test/helm/deployment_default_spec_test.yaml
 rename src/test/helm/{deployment_scrapeMetrics_test.yaml => deployment_defaults_topologySpreadConstraints_test.yaml} (67%)
 rename src/test/helm/{deployment-keycloak-values-test.yaml => deployment_keycloak_values_test.yaml} (92%)
 rename src/test/helm/{deployment-mongodb-passwort-secretref-test.yaml => deployment_mongodb_passwort_secretref_test.yaml} (100%)
 rename src/test/helm/{deployment-url-value-test.yaml => deployment_url_value_test.yaml} (100%)
 rename src/test/helm/{deployment-test.yaml => deyploment_general_value_and_default_spec_test.yaml} (53%)
 rename src/test/helm/{ingress-nginx-tests.yaml => ingress_nginx_test.yaml} (95%)
 rename src/test/helm/{keycloak-user-crd-test.yaml => keycloak_user_crd_test.yaml} (87%)

diff --git a/run_helm_test.sh b/run_helm_test.sh
index 3c7a112b..2ee101b5 100755
--- a/run_helm_test.sh
+++ b/run_helm_test.sh
@@ -5,4 +5,4 @@ set -x
 
 helm template  ./src/main/helm/ -f src/test/linter-values.yaml
 helm lint -f src/test/linter-values.yaml ./src/main/helm/
-cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' .
\ No newline at end of file
+cd src/main/helm && helm unittest -f '../../test/helm/**/*.yaml' .
\ No newline at end of file
diff --git a/src/main/helm/templates/api-password-secret.yaml b/src/main/helm/templates/api_password_secret.yaml
similarity index 100%
rename from src/main/helm/templates/api-password-secret.yaml
rename to src/main/helm/templates/api_password_secret.yaml
diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image_pull_secret.yaml
similarity index 100%
rename from src/main/helm/templates/image-pull-secret.yaml
rename to src/main/helm/templates/image_pull_secret.yaml
diff --git a/src/main/helm/templates/keycloak-user-crd.yaml b/src/main/helm/templates/keycloak_user_crd.yaml
similarity index 100%
rename from src/main/helm/templates/keycloak-user-crd.yaml
rename to src/main/helm/templates/keycloak_user_crd.yaml
diff --git a/src/test/helm/api-password-secret_test.yaml b/src/test/helm/api-password-secret_test.yaml
deleted file mode 100644
index b3bafd39..00000000
--- a/src/test/helm/api-password-secret_test.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-suite: test api password secret
-release:
-  name: user-manager
-  namespace: sh-test-test
-templates:
-  - templates/api-password-secret.yaml
-set:
-  ozgcloud:
-    keycloak:
-      api: 
-        password: testPassword
-tests:
-  - it: test api secret kind
-    asserts:
-      - isKind:
-          of: Secret
-  - it: test api password 
-    asserts:
-      - equal:
-          path: stringData.password
-          value: testPassword
-  - it: should use Keycloak User Operator
-    set:
-      sso:
-        api_user:
-          name: userManagerApiUser
-    asserts:
-      - hasDocuments:
-          count: 0
\ No newline at end of file
diff --git a/src/test/helm/api_password_secret_test.yaml b/src/test/helm/api_password_secret_test.yaml
new file mode 100644
index 00000000..77ccbbd5
--- /dev/null
+++ b/src/test/helm/api_password_secret_test.yaml
@@ -0,0 +1,64 @@
+suite: test api password secret
+release:
+  name: user-manager
+  namespace: sh-test-test
+templates:
+  - templates/api_password_secret.yaml
+set:
+  ozgcloud:
+    keycloak:
+      api: 
+        password: testPassword
+tests:
+  - it: test api secret kind
+    asserts:
+      - isKind:
+          of: Secret
+      - isAPIVersion:
+          of: v1
+  - it: test api password 
+    asserts:
+      - equal:
+          path: stringData.password
+          value: testPassword
+  - it: not create api_password_secret if kc api.password not set and api_user set
+    set:
+      sso:
+        api_user:
+          name: userManagerApiUser
+    asserts:
+      - hasDocuments:
+          count: 0
+  - it: should not create api_password_secret if kc api.password not set and api_user not set
+    set:
+      sso:
+        api_user:
+          name: ""
+      ozgcloud:
+        keycloak:
+          api: 
+            password: ""
+    asserts:
+      - hasDocuments:
+          count: 0
+  - it: should create api_password_secret if kc api.password set and api_user not set
+    set:
+      ozgcloud:
+        keycloak:
+          api: 
+            password: "passwrd"
+    asserts:
+      - hasDocuments:
+          count: 1
+  - it: should not create api_password_secret if kc api.password set and api_user set
+    set:
+      sso:
+        api_user:
+          name: userManagerApiUser
+      ozgcloud:
+        keycloak:
+          api: 
+            password: "passwrd"
+    asserts:
+      - hasDocuments:
+          count: 0
\ No newline at end of file
diff --git a/src/test/helm/cert_issuer_test.yaml b/src/test/helm/cert_issuer_test.yaml
index 22432809..0ac34d47 100644
--- a/src/test/helm/cert_issuer_test.yaml
+++ b/src/test/helm/cert_issuer_test.yaml
@@ -35,6 +35,8 @@ tests:
           of: cert-manager.io/v1
       - isKind:
           of: Issuer
+      - isAPIVersion:
+          of: cert-manager.io/v1
   - it: should have metadata
     asserts:
       - equal:
diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml
index 22bb64d3..205e5aac 100644
--- a/src/test/helm/deployment_container_security_context_test.yaml
+++ b/src/test/helm/deployment_container_security_context_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment container security
 release:
   name: user-manager
   namespace: sh-helm-test
@@ -38,8 +38,6 @@ set:
 tests:
   - it: check default values
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation
           value: false
diff --git a/src/test/helm/deployment_default_spec_test.yaml b/src/test/helm/deployment_default_spec_test.yaml
new file mode 100644
index 00000000..5e2d1726
--- /dev/null
+++ b/src/test/helm/deployment_default_spec_test.yaml
@@ -0,0 +1,96 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: test deployment actuator
+release:
+  name: user-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud:
+    bezeichner: helm
+    bundesland: by
+    environment: dev
+  baseUrl: test.sh.ozg-cloud.de
+  sso:
+    serverUrl: sso.test.sh.ozg-cloud.de
+tests:
+  - it: check for some standard values
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: docker.ozg-sh.de/user-manager:latest
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: Always
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: user-manager
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].containerPort
+          value: 9000
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].name
+          value: grpc-9000
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].protocol
+          value: TCP
+      - equal:
+          path: spec.template.spec.containers[0].stdin
+          value: true
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePath
+          value: /dev/termination-log
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePolicy
+          value: File
+      - equal:
+          path: spec.template.spec.containers[0].tty
+          value: true
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].containerPort
+          value: 8080
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].name
+          value: http
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].protocol
+          value: TCP
+  - it: should have correct pod template values
+    asserts:
+      - isEmpty:
+          path: spec.template.spec.dnsConfig
+      - equal:
+          path: spec.template.spec.dnsPolicy
+          value: "ClusterFirst"
+      - equal:
+          path: spec.template.spec.restartPolicy
+          value: "Always"
+      - equal:
+          path: spec.template.spec.schedulerName
+          value: "default-scheduler"
+      - equal:
+          path: spec.template.spec.terminationGracePeriodSeconds
+          value: 30
\ No newline at end of file
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 2da97b8d..ea21aa38 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -22,14 +22,12 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment default lables
 release:
   name: user-manager
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-  - templates/service.yaml
-  - templates/service_monitor.yaml
 set:
   ozgcloud:
     bundesland: by
@@ -54,26 +52,10 @@ tests:
           path: metadata.labels["app.kubernetes.io/namespace"]
           value: sh-helm-test
   - it: check component label for deployment
-    templates:
-      - templates/deployment.yaml
     asserts:
       - equal:
           path: spec.template.metadata.labels["component"]
           value: user-manager
-  - it: check component label for service
-    templates:
-      - templates/service.yaml
-    asserts:
-      - equal:
-          path: metadata.labels["component"]
-          value: user-manager-service
-  - it: check component label for service monitor
-    templates:
-      - templates/service_monitor.yaml
-    asserts:
-      - equal:
-          path: metadata.labels["component"]
-          value: user-manager-service-monitor
 
   - it: should have label for mongodb client
     asserts:
diff --git a/src/test/helm/deployment_scrapeMetrics_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
similarity index 67%
rename from src/test/helm/deployment_scrapeMetrics_test.yaml
rename to src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
index 4c73aaeb..1071ef23 100644
--- a/src/test/helm/deployment_scrapeMetrics_test.yaml
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -22,29 +22,32 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment topology
 release:
   name: user-manager
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-  - templates/secret_database_quarkus.yaml
 set:
   ozgcloud:
-    bundesland: by
     bezeichner: helm
+    bundesland: by
     environment: dev
+  baseUrl: test.sh.ozg-cloud.de
   sso:
     serverUrl: sso.test.sh.ozg-cloud.de
-  baseUrl: test.sh.ozg-cloud.de
-
 tests:
-  - it: should set the metrics port by default
-    template: deployment.yaml
+  - it: check default values
     asserts:
-      - contains:
-          path: spec.template.spec.containers[0].ports
-          content:
-            name: http
-            containerPort: 8080
-            protocol: TCP
\ No newline at end of file
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].maxSkew
+          value: 1
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].topologyKey
+          value: kubernetes.io/hostname
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable
+          value: ScheduleAnyway
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
+          value: user-manager
\ No newline at end of file
diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml
index c767c8d8..50bd0bbe 100644
--- a/src/test/helm/deployment_env_test.yaml
+++ b/src/test/helm/deployment_env_test.yaml
@@ -35,7 +35,6 @@ set:
   baseUrl: test.sh.ozg-cloud.de
 tests:
   - it: check customList
-    template: deployment.yaml
     set:
       env.customList:
         - name: my_test_environment_name
@@ -47,7 +46,6 @@ tests:
             name: my_test_environment_name
             value: "A test value"
   - it: check customList test value is not set by default
-    template: deployment.yaml
     asserts:
       - notContains:
           path: spec.template.spec.containers[0].env
@@ -80,9 +78,6 @@ tests:
   - it: check user sync period set
     set:
       ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: dev  
         usersync:
           period: "6h"
     asserts:
@@ -91,6 +86,12 @@ tests:
           content:
             name: OZGCLOUD_USERSYNC_PERIOD
             value: "6h"
+  - it: not contain sync period by default
+    asserts:
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: OZGCLOUD_USERSYNC_PERIOD
   - it: check user sync period NOT set
     asserts:
       - notContains:
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index 48407297..557926de 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -39,8 +39,6 @@ set:
 tests:
   - it: should use default imagePull secret
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.imagePullSecrets[0].name
           value: user-manager-image-pull-secret
@@ -48,8 +46,6 @@ tests:
     set:
       imagePullSecret: image-pull-secret
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.imagePullSecrets[0].name
           value: image-pull-secret
\ No newline at end of file
diff --git a/src/test/helm/deployment-keycloak-values-test.yaml b/src/test/helm/deployment_keycloak_values_test.yaml
similarity index 92%
rename from src/test/helm/deployment-keycloak-values-test.yaml
rename to src/test/helm/deployment_keycloak_values_test.yaml
index 975dcd37..b458a4a1 100644
--- a/src/test/helm/deployment-keycloak-values-test.yaml
+++ b/src/test/helm/deployment_keycloak_values_test.yaml
@@ -113,7 +113,17 @@ tests:
           content: 
             name: KEYCLOAK_URL
             value: https://sso.test.by.ozg-cloud.de
-
+  - it: should use set OZGCLOUD_KEYCLOAK_API_PASSWORD when api_user set
+    set:
+      sso:
+        api_user:
+          name: -userManager-ApiUser
+        serverUrl: https://sso.company.local
+    asserts:
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content: 
+            name: OZGCLOUD_KEYCLOAK_API_PASSWORD
   - it: should use Keycloak User Operator
     set:
       sso:
diff --git a/src/test/helm/deployment-mongodb-passwort-secretref-test.yaml b/src/test/helm/deployment_mongodb_passwort_secretref_test.yaml
similarity index 100%
rename from src/test/helm/deployment-mongodb-passwort-secretref-test.yaml
rename to src/test/helm/deployment_mongodb_passwort_secretref_test.yaml
diff --git a/src/test/helm/deployment_optional_trust_store_test.yaml b/src/test/helm/deployment_optional_trust_store_test.yaml
index d31e8fbc..6944e3d1 100644
--- a/src/test/helm/deployment_optional_trust_store_test.yaml
+++ b/src/test/helm/deployment_optional_trust_store_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test environments
+suite: test environments trust store
 templates:
   - templates/deployment.yaml
 set:
diff --git a/src/test/helm/deployment_probes_test.yaml b/src/test/helm/deployment_probes_test.yaml
index 65960acf..16ea2042 100644
--- a/src/test/helm/deployment_probes_test.yaml
+++ b/src/test/helm/deployment_probes_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: deployment
+suite: deployment health test
 release:
   name: user-manager
   namespace: by-helm-test
@@ -38,13 +38,11 @@ set:
   baseUrl: test.by.company.local
 tests:
   - it: livenessProbe should be disabled by default
-    template: deployment.yaml
     asserts:
       - notExists:
           path: spec.template.spec.containers[0].livenessProbe
 
   - it: enable livenessProbe
-    template: deployment.yaml
     set:
       enableLivenessProbe: true
     asserts:
@@ -60,9 +58,12 @@ tests:
             periodSeconds: 5
             successThreshold: 1
             timeoutSeconds: 5
+  - it: not enable livenessProbe by default
+    asserts:
+      - isNull:
+          path: spec.template.spec.containers[0].livenessProbe
 
   - it: should have readiness probe
-    template: deployment.yaml
     asserts:
       - isSubset:
           path: spec.template.spec.containers[0].readinessProbe
@@ -77,7 +78,6 @@ tests:
             timeoutSeconds: 3
 
   - it: should have startup probe
-    template: deployment.yaml
     asserts:
       - isSubset:
           path: spec.template.spec.containers[0].startupProbe
diff --git a/src/test/helm/deployment_realm_name_length_test.yaml b/src/test/helm/deployment_realm_name_length_test.yaml
index 17852c0c..05489c7a 100644
--- a/src/test/helm/deployment_realm_name_length_test.yaml
+++ b/src/test/helm/deployment_realm_name_length_test.yaml
@@ -31,7 +31,6 @@ templates:
 
 tests:
   - it: should fail on bezeichner length longer than 46 characters
-    template: deployment.yaml
     set:
       ozgcloud:
         bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index 0b27fd25..ca06a606 100644
--- a/src/test/helm/deployment_resources_test.yaml
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment recources
 release:
   name: user-manager
 templates:
@@ -37,7 +37,6 @@ set:
   baseUrl: test.sh.ozg-cloud.de
 tests:
   - it: test resources
-    template: deployment.yaml
     set:
       resources:
         limits:
diff --git a/src/test/helm/deployment-url-value-test.yaml b/src/test/helm/deployment_url_value_test.yaml
similarity index 100%
rename from src/test/helm/deployment-url-value-test.yaml
rename to src/test/helm/deployment_url_value_test.yaml
diff --git a/src/test/helm/deployment-test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
similarity index 53%
rename from src/test/helm/deployment-test.yaml
rename to src/test/helm/deyploment_general_value_and_default_spec_test.yaml
index cfcbe842..173b04d8 100644
--- a/src/test/helm/deployment-test.yaml
+++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
 # Ministerpräsidenten des Landes Schleswig-Holstein
 # Staatskanzlei
 # Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
@@ -22,29 +22,58 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: deployment
+suite: test deployment general values
 release:
   name: user-manager
+  namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
 set:
   ozgcloud:
-    bundesland: by
     bezeichner: helm
+    bundesland: by
     environment: dev
-  sso.serverUrl: https://sso.company.local
-  baseUrl: test.company.local
+  baseUrl: test.sh.ozg-cloud.de
+  sso:
+    serverUrl: sso.test.sh.ozg-cloud.de
+
 tests:
-  - it: test resources for prod environment
-    release:
-      namespace: sh-helm-test
-    template: deployment.yaml
+  - it: should have correct apiVersion
     asserts:
       - isKind:
           of: Deployment
+      - isAPIVersion:
+           of: "apps/v1"
+      
+  - it: should have correct deployment metadata 
+    asserts: 
+      - equal:
+          path: metadata.name
+          value: user-manager
+      - equal: 
+          path: metadata.namespace
+          value: sh-helm-test
+
+
+  - it: should have correct deyployment general spec values
+    asserts:
       - equal:
-          path: spec.template.spec.containers[0].image
-          value: docker.ozg-sh.de/user-manager:latest
+          path: spec.progressDeadlineSeconds
+          value: 600
       - equal:
           path: spec.replicas
           value: 2
+      - equal:
+          path: spec.revisionHistoryLimit
+          value: 10
+  - it: should have correct deployment spec strategy values
+    asserts:
+      - equal: 
+          path: spec.strategy
+          value: 
+            rollingUpdate:
+              maxSurge: 1
+              maxUnavailable: 0
+            type: RollingUpdate
+          
+
diff --git a/src/test/helm/imagepull_secret_test.yaml b/src/test/helm/imagepull_secret_test.yaml
index 7432184e..80631de8 100644
--- a/src/test/helm/imagepull_secret_test.yaml
+++ b/src/test/helm/imagepull_secret_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test image pull secret
 templates:
-  - templates/image-pull-secret.yaml
+  - templates/image_pull_secret.yaml
 release:
   name: user-manager
   namespace: helm-test
diff --git a/src/test/helm/ingress_nginx_cors_test.yaml b/src/test/helm/ingress_nginx_cors_test.yaml
index 3b85133a..ab13558f 100644
--- a/src/test/helm/ingress_nginx_cors_test.yaml
+++ b/src/test/helm/ingress_nginx_cors_test.yaml
@@ -43,8 +43,6 @@ tests:
             more_set_headers "Access-Control-Expose-Headers: Content-Length,Content-Range";
             more_set_headers "Access-Control-Allow-Origin: https://helm.test.sh.ozg-cloud.de";
     asserts:
-      - isKind:
-          of: Ingress
       - equal:
           path: metadata.annotations["nginx.ingress.kubernetes.io/configuration-snippet"]
           value: |
diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress_nginx_test.yaml
similarity index 95%
rename from src/test/helm/ingress-nginx-tests.yaml
rename to src/test/helm/ingress_nginx_test.yaml
index 970ad9af..1cd4c82d 100644
--- a/src/test/helm/ingress-nginx-tests.yaml
+++ b/src/test/helm/ingress_nginx_test.yaml
@@ -33,6 +33,12 @@ set:
   ozgcloud:
     bezeichner: helm
 tests:
+  - it: should contain header data
+    asserts:
+      - isAPIVersion:
+          of: networking.k8s.io/v1
+      - isKind:
+          of: Ingress
   - it: should create ingress tls
     asserts:
       - equal:
diff --git a/src/test/helm/keycloak-user-crd-test.yaml b/src/test/helm/keycloak_user_crd_test.yaml
similarity index 87%
rename from src/test/helm/keycloak-user-crd-test.yaml
rename to src/test/helm/keycloak_user_crd_test.yaml
index b6f4e349..e5c9032d 100644
--- a/src/test/helm/keycloak-user-crd-test.yaml
+++ b/src/test/helm/keycloak_user_crd_test.yaml
@@ -27,7 +27,7 @@ release:
   name: user-manager
   namespace: by-helm-test
 templates:
-  - templates/keycloak-user-crd.yaml
+  - templates/keycloak_user_crd.yaml
 tests:
   - it: should contain header data
     set:
@@ -53,12 +53,7 @@ tests:
           value: by-helm-test
   - it: should have default Values
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
-        serverUrl: https://sso.test.by.ozg-cloud.de
         api_user:
           name: testapiuser
     asserts:
@@ -85,18 +80,13 @@ tests:
 
   - it: should have Keycloak User without roles
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       baseUrl: "test.by.ozg-cloud.de"
       sso:
         api_user:
           name: testapiuser
           first_name: UserManager
           last_name: ApiUser
-          email: testapiuser@ozg-sh.de
-        serverUrl: https://sso.test.by.ozg-cloud.de
+          email: testapiuser@ozg-sh.de    
     asserts:
       - equal:
           path: spec.keep_after_delete
@@ -122,11 +112,6 @@ tests:
 
   - it: should have Keycloak User with client role
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
-      baseUrl: "test.by.ozg-cloud.de"
       sso:
         api_user:
           name: testapiuser
@@ -136,7 +121,6 @@ tests:
           client_roles:
             - name: alfa
               role: VERWALTUNG_USER
-        serverUrl: https://sso.test.by.ozg-cloud.de
     asserts:
       - equal:
           path: spec.keep_after_delete
@@ -165,11 +149,6 @@ tests:
 
   - it: should have Keycloak User with realm role
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
-      baseUrl: "test.by.ozg-cloud.de"
       sso:
         api_user:
           name: testapiuser
@@ -178,7 +157,6 @@ tests:
           email: testapiuser@ozg-sh.de
           realm_roles:
             - "offline_access"
-        serverUrl: https://sso.test.by.ozg-cloud.de
     asserts:
       - equal:
           path: spec.keep_after_delete
@@ -206,11 +184,6 @@ tests:
 
   - it: should have Keycloak User with group
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
-      baseUrl: "test.by.ozg-cloud.de"
       sso:
         api_user:
           name: testapiuser
@@ -219,7 +192,6 @@ tests:
           email: testapiuser@ozg-sh.de
           groups:
             - Bauamt
-        serverUrl: https://sso.test.by.ozg-cloud.de
     asserts:
       - equal:
           path: spec.keep_after_delete
@@ -247,14 +219,9 @@ tests:
 
   - it: should have lowercase username
     set:
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         api_user:
           name: testApiUser
-        serverUrl: https://sso.test.by.ozg-cloud.de
     asserts:
       - equal:
           path: spec.keycloak_user.username
diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml
index 88406d05..c600bf4f 100644
--- a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml
+++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_binding_test.yaml
@@ -1,6 +1,6 @@
 suite: test ozgcloud_keycloak_operator_secrets_read_role_binding
 release:
-  name: alfa
+  name: user-manager
   namespace: by-helm-test
 templates:
   - templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml
diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml
index 17dcf4f3..38f037f7 100644
--- a/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml
+++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_read_role_test.yaml
@@ -1,6 +1,6 @@
 suite: test ozgcloud_keycloak_operator_secrets_read_role
 release:
-  name: alfa
+  name: user-manager
   namespace: by-helm-test
 templates:
   - templates/ozgcloud_keycloak_operator_secrets_read_role.yaml
diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml
index a4e1272f..532115e1 100644
--- a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml
+++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_binding_test.yaml
@@ -1,6 +1,6 @@
 suite: test ozgcloud_keycloak_operator_secrets_role_binding
 release:
-  name: alfa
+  name: user-manager
   namespace: by-helm-test
 templates:
   - templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml
diff --git a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml
index 25f63240..13e38aad 100644
--- a/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml
+++ b/src/test/helm/ozgcloud_keycloak_operator_secrets_write_role_test.yaml
@@ -1,6 +1,6 @@
 suite: test ozgcloud_keycloak_operator_secrets_write_role
 release:
-  name: alfa
+  name: user-manager
   namespace: by-helm-test
 templates:
   - templates/ozgcloud_keycloak_operator_secrets_write_role.yaml
diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml
index f5b9a319..0bea1376 100644
--- a/src/test/helm/service_account_test.yaml
+++ b/src/test/helm/service_account_test.yaml
@@ -36,6 +36,8 @@ tests:
     asserts:
       - isKind:
           of: ServiceAccount
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: user-manager-service-account
@@ -48,8 +50,6 @@ tests:
         create: true
         name: helm-service-account
     asserts:
-      - isKind:
-          of: ServiceAccount
       - equal:
           path: metadata.name
           value: helm-service-account
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index c8be85c8..32b0cf3e 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -33,9 +33,34 @@ tests:
     asserts:
       - isKind:
           of: ServiceMonitor
+      - isAPIVersion:
+          of: monitoring.coreos.com/v1
       - equal:
           path: metadata.labels["component"]
           value: user-manager-service-monitor
+  - it: should have metadata
+    asserts:
+      - equal:
+          path: metadata.name
+          value: user-manager 
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should have default lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value: 
+            app.kubernetes.io/instance: user-manager
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: user-manager
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: user-manager-service-monitor
+            helm.sh/chart: user-manager-0.0.0-MANAGED-BY-JENKINS
+            k8s-app: prometheus-app-monitor
+            ozgcloud-mongodb-client: "true"
   - it: should be able to enable the endpoint
     asserts:
       - isKind:
diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml
index 08c9324f..00d7b3d3 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -33,9 +33,33 @@ tests:
     asserts:
       - isKind:
           of: Service
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.labels["component"]
           value: user-manager-service
+  - it: should have metadata
+    asserts:
+      - equal:
+          path: metadata.name
+          value: user-manager 
+      - equal:
+          path: metadata.namespace
+          value: helm-test
+  - it: should have default lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value: 
+            app.kubernetes.io/instance: user-manager
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: user-manager
+            app.kubernetes.io/namespace: helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: user-manager-service
+            helm.sh/chart: user-manager-0.0.0-MANAGED-BY-JENKINS
+            ozgcloud-mongodb-client: "true"
   - it: should be of type ClusterIP
     asserts:
       - equal:
-- 
GitLab