From a5c095837ce0d4f6c7e7fd960b2deba86ecdf7ea Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Tue, 2 Apr 2024 14:13:18 +0200
Subject: [PATCH] OZG-3328 cleanup helm unittests and add tests to cover each
 line

---
 run_helm_test.sh                              |  2 +-
 ...ient-crd.yaml => keycloak_client_crd.yaml} |  0
 .../{keycloak-crd.yaml => keycloak_crd.yaml}  |  0
 ...group-crd.yaml => keycloak_group_crd.yaml} |  0
 ...k-user-crd.yaml => keycloak_user_crd.yaml} |  0
 .../bindings_type_configmap_test.yaml         |  4 +-
 src/test/helm/deployment_actuator_test.yaml   | 69 +++++++++++++++++++
 .../helm/deployment_container_basic_test.yaml | 64 +++++++++++++++++
 ...eployment_container_other_values_test.yaml | 54 +++++++++++++++
 ...ml => deployment_customList_env_test.yaml} |  2 -
 .../deployment_defaults_affinity_test.yaml    |  2 -
 .../helm/deployment_defaults_env_test.yaml    |  4 --
 .../helm/deployment_defaults_labels_test.yaml |  3 +-
 ..._defaults_spec_containers_health_test.yaml |  2 -
 ..._spec_containers_securityContext_test.yaml |  2 -
 ...loyment_defaults_spec_containers_test.yaml |  2 -
 ... => deployment_defaults_sso_env_test.yaml} |  4 +-
 ...faults_topologySpreadConstraints_test.yaml |  4 +-
 src/test/helm/deployment_imageTag_test.yaml   |  2 -
 .../deployment_imagepull_secret_test.yaml     |  4 --
 .../helm/deployment_liveness_probe_test.yaml  |  5 +-
 .../helm/deployment_pluto_address_test.yaml   |  2 +-
 ...loyment_pod_default_spec_values_test.yaml} | 31 +++++----
 .../deployment_realm_name_length_test.yaml    |  1 -
 src/test/helm/deployment_resources_test.yaml  |  2 +-
 ...=> deployment_springProfile_env_test.yaml} |  6 +-
 ...loyment_usermanager_address_env_test.yaml} |  2 +-
 ..._general_value_and_default_spec_test.yaml} | 68 +++++++++---------
 ...l => ingress_defaults_annotaion_test.yaml} |  2 +
 ...nx-tests.yaml => ingress_nginx_tests.yaml} |  0
 ...est.yaml => keycloak_client_crd_test.yaml} |  2 +-
 ...k-crd-test.yaml => keycloak_crd_test.yaml} |  2 +-
 ...test.yaml => keycloak_group_crd_test.yaml} |  2 +-
 ...-test.yaml => keycloak_user_crd_test.yaml} |  2 +-
 src/test/helm/network_policy_test.yaml        |  1 +
 src/test/helm/service_monitor_test.yaml       | 29 ++++++--
 src/test/helm/service_test.yaml               | 32 ++++++++-
 37 files changed, 314 insertions(+), 99 deletions(-)
 rename src/main/helm/templates/{keycloak-client-crd.yaml => keycloak_client_crd.yaml} (100%)
 rename src/main/helm/templates/{keycloak-crd.yaml => keycloak_crd.yaml} (100%)
 rename src/main/helm/templates/{keycloak-group-crd.yaml => keycloak_group_crd.yaml} (100%)
 rename src/main/helm/templates/{keycloak-user-crd.yaml => keycloak_user_crd.yaml} (100%)
 rename src/test/{ => helm}/bindings_type_configmap_test.yaml (94%)
 create mode 100644 src/test/helm/deployment_actuator_test.yaml
 create mode 100644 src/test/helm/deployment_container_basic_test.yaml
 create mode 100644 src/test/helm/deployment_container_other_values_test.yaml
 rename src/test/helm/{deployment_env_test.yaml => deployment_customList_env_test.yaml} (96%)
 rename src/test/helm/{deployment_defaults_sso_test.yaml => deployment_defaults_sso_env_test.yaml} (97%)
 rename src/test/helm/{deployment_replicas_test.yaml => deployment_pod_default_spec_values_test.yaml} (65%)
 rename src/test/helm/{deployment_springProfile_test.yaml => deployment_springProfile_env_test.yaml} (94%)
 rename src/test/helm/{deployment_usermanager_address_test.yaml => deployment_usermanager_address_env_test.yaml} (97%)
 rename src/test/helm/{deployment_defaults_spec_test.yaml => deyploment_general_value_and_default_spec_test.yaml} (57%)
 rename src/test/helm/{deployment_defaults_annotaion_test.yaml => ingress_defaults_annotaion_test.yaml} (96%)
 rename src/test/helm/{ingress-nginx-tests.yaml => ingress_nginx_tests.yaml} (100%)
 rename src/test/helm/{keycloak-client-crd-test.yaml => keycloak_client_crd_test.yaml} (99%)
 rename src/test/helm/{keycloak-crd-test.yaml => keycloak_crd_test.yaml} (98%)
 rename src/test/helm/{keycloak-group-crd-test.yaml => keycloak_group_crd_test.yaml} (99%)
 rename src/test/helm/{keycloak-user-crd-test.yaml => keycloak_user_crd_test.yaml} (99%)

diff --git a/run_helm_test.sh b/run_helm_test.sh
index 4395f39425..30f96ffa00 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/helm-linter-values.yaml
 helm lint -f src/test/helm-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/**/*test.yaml' .
\ No newline at end of file
diff --git a/src/main/helm/templates/keycloak-client-crd.yaml b/src/main/helm/templates/keycloak_client_crd.yaml
similarity index 100%
rename from src/main/helm/templates/keycloak-client-crd.yaml
rename to src/main/helm/templates/keycloak_client_crd.yaml
diff --git a/src/main/helm/templates/keycloak-crd.yaml b/src/main/helm/templates/keycloak_crd.yaml
similarity index 100%
rename from src/main/helm/templates/keycloak-crd.yaml
rename to src/main/helm/templates/keycloak_crd.yaml
diff --git a/src/main/helm/templates/keycloak-group-crd.yaml b/src/main/helm/templates/keycloak_group_crd.yaml
similarity index 100%
rename from src/main/helm/templates/keycloak-group-crd.yaml
rename to src/main/helm/templates/keycloak_group_crd.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/bindings_type_configmap_test.yaml b/src/test/helm/bindings_type_configmap_test.yaml
similarity index 94%
rename from src/test/bindings_type_configmap_test.yaml
rename to src/test/helm/bindings_type_configmap_test.yaml
index da77e60e93..9382195350 100644
--- a/src/test/bindings_type_configmap_test.yaml
+++ b/src/test/helm/bindings_type_configmap_test.yaml
@@ -33,9 +33,11 @@ tests:
     asserts:
       - isKind:
           of: ConfigMap
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
-          value: bindings-type
+          value: alfa-bindings-type
       - equal:
           path: metadata.namespace
           value: sh-helm-test
diff --git a/src/test/helm/deployment_actuator_test.yaml b/src/test/helm/deployment_actuator_test.yaml
new file mode 100644
index 0000000000..cdb9a19618
--- /dev/null
+++ b/src/test/helm/deployment_actuator_test.yaml
@@ -0,0 +1,69 @@
+#
+# 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
+#
+# 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: alfa
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+  imagePullSecret: test-image-pull-secret
+tests:
+  - it: check readiness and startup probe
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe
+          value:
+            failureThreshold: 3
+            httpGet:
+              path: /actuator/health/readiness
+              port: 8081
+              scheme: HTTP
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 3
+                                
+      - equal: 
+          path: spec.template.spec.containers[0].startupProbe
+          value: 
+            failureThreshold: 10
+            httpGet:
+              path: /actuator/health/readiness
+              port: 8081
+              scheme: HTTP
+            initialDelaySeconds: 30
+            periodSeconds: 5
+            successThreshold: 1
+            timeoutSeconds: 5
+
+
+
diff --git a/src/test/helm/deployment_container_basic_test.yaml b/src/test/helm/deployment_container_basic_test.yaml
new file mode 100644
index 0000000000..d1825339f2
--- /dev/null
+++ b/src/test/helm/deployment_container_basic_test.yaml
@@ -0,0 +1,64 @@
+#
+# 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
+#
+# 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 container basics
+release:
+  name: alfa
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+tests:
+  - it: should have correct values for container image, name, imagePullPolicy
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: docker.ozg-sh.de/alfa:latest
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: alfa
+      - equal: 
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: Always
+  - it: should have correct values for container ports
+    asserts:
+      - contains: 
+          path: spec.template.spec.containers[0].ports
+          content:  
+            containerPort: 8080
+            name: 8080tcp1
+            protocol: TCP
+      - contains: 
+          path: spec.template.spec.containers[0].ports
+          content:  
+            containerPort: 8081
+            name: metrics
+            protocol: TCP
\ No newline at end of file
diff --git a/src/test/helm/deployment_container_other_values_test.yaml b/src/test/helm/deployment_container_other_values_test.yaml
new file mode 100644
index 0000000000..5a5644e3c7
--- /dev/null
+++ b/src/test/helm/deployment_container_other_values_test.yaml
@@ -0,0 +1,54 @@
+   
+   #
+# 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
+#
+# 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 container other values
+release:
+  name: alfa
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+tests:
+  - it: should have correct values for container terminationMessagePolicy, terminationMessagePath, stdin, tty
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePolicy
+          value: File
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePath
+          value: /dev/termination-log
+      - equal: 
+          path: spec.template.spec.containers[0].stdin
+          value: true
+      - equal: 
+          path: spec.template.spec.containers[0].tty
+          value: true
\ No newline at end of file
diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_customList_env_test.yaml
similarity index 96%
rename from src/test/helm/deployment_env_test.yaml
rename to src/test/helm/deployment_customList_env_test.yaml
index 4846e3c79c..f9b21c10af 100644
--- a/src/test/helm/deployment_env_test.yaml
+++ b/src/test/helm/deployment_customList_env_test.yaml
@@ -35,7 +35,6 @@ set:
     serverUrl: https://sso.company.local
 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
diff --git a/src/test/helm/deployment_defaults_affinity_test.yaml b/src/test/helm/deployment_defaults_affinity_test.yaml
index 66ff5b228b..a4dc69679a 100644
--- a/src/test/helm/deployment_defaults_affinity_test.yaml
+++ b/src/test/helm/deployment_defaults_affinity_test.yaml
@@ -39,8 +39,6 @@ set:
 tests:
   - it: should work
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key
           value: alfaable
diff --git a/src/test/helm/deployment_defaults_env_test.yaml b/src/test/helm/deployment_defaults_env_test.yaml
index fda55d0d97..d054338759 100644
--- a/src/test/helm/deployment_defaults_env_test.yaml
+++ b/src/test/helm/deployment_defaults_env_test.yaml
@@ -70,8 +70,6 @@ tests:
             value: "/bindings"
 
   - it: should have user assistance documentation url
-    templates:
-      - templates/deployment.yaml
     set:
       ozgcloud:
         user_assistance:
@@ -88,8 +86,6 @@ tests:
             value: http://
 
   - it: should have create Bescheid Konfiguration
-    templates:
-      - templates/deployment.yaml
     set:
       ozgcloud:
         environment: test
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 635f86e602..ddd045f50e 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -28,8 +28,7 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-  - templates/service_monitor.yaml
-  - templates/service.yaml
+ 
 set:
   baseUrl: test.company.local
   ozgcloud:
diff --git a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
index b159900bff..352d154685 100644
--- a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
@@ -39,8 +39,6 @@ set:
 tests:
   - it: should work
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.containers[0].readinessProbe.failureThreshold
           value: 3
diff --git a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
index 21f10f7c84..ebb235df4d 100644
--- a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
@@ -39,8 +39,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_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
index 20acbea4b6..eab9e59cd2 100644
--- a/src/test/helm/deployment_defaults_spec_containers_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -39,8 +39,6 @@ set:
 tests:
   - it: check for some standard values
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.containers[0].image
           value: "docker.ozg-sh.de/alfa:latest"
diff --git a/src/test/helm/deployment_defaults_sso_test.yaml b/src/test/helm/deployment_defaults_sso_env_test.yaml
similarity index 97%
rename from src/test/helm/deployment_defaults_sso_test.yaml
rename to src/test/helm/deployment_defaults_sso_env_test.yaml
index 9577a9a015..9f75b449b2 100644
--- a/src/test/helm/deployment_defaults_sso_test.yaml
+++ b/src/test/helm/deployment_defaults_sso_env_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment sso
 release:
   name: alfa
   namespace: sh-helm-test
@@ -39,8 +39,6 @@ set:
 tests:
   - it: check default values
     asserts:
-      - isKind:
-          of: Deployment
       - contains:
           path: spec.template.spec.containers[0].env
           content:
diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
index 3dadf673fe..8c5547b0e3 100644
--- a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment topology
 release:
   name: alfa
   namespace: sh-helm-test
@@ -39,8 +39,6 @@ set:
 tests:
   - it: check default values
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.topologySpreadConstraints[0].maxSkew
           value: 1
diff --git a/src/test/helm/deployment_imageTag_test.yaml b/src/test/helm/deployment_imageTag_test.yaml
index 24eb6cd05e..ba61fa1901 100644
--- a/src/test/helm/deployment_imageTag_test.yaml
+++ b/src/test/helm/deployment_imageTag_test.yaml
@@ -41,8 +41,6 @@ tests:
     set:
       image.tag: latest
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.containers[0].image
           value: docker.ozg-sh.de/alfa:latest
\ No newline at end of file
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index 376a207a28..adce403039 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: alfa-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_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml
index c40f218f96..fcc854efa2 100644
--- a/src/test/helm/deployment_liveness_probe_test.yaml
+++ b/src/test/helm/deployment_liveness_probe_test.yaml
@@ -44,7 +44,6 @@ tests:
           path: spec.template.spec.containers[0].livenessProbe
 
   - it: enable livenessProbe
-    template: deployment.yaml
     set:
       enableLivenessProbe: true
     asserts:
@@ -59,3 +58,7 @@ tests:
             periodSeconds: 10
             successThreshold: 1
             timeoutSeconds: 3
+  - it: not enable livenessProbe by default
+    asserts:
+      - isNull:
+          path: spec.template.spec.containers[0].livenessProbe
\ No newline at end of file
diff --git a/src/test/helm/deployment_pluto_address_test.yaml b/src/test/helm/deployment_pluto_address_test.yaml
index f29d2a1019..5058818e1d 100644
--- a/src/test/helm/deployment_pluto_address_test.yaml
+++ b/src/test/helm/deployment_pluto_address_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment pluto address
 release:
   name: alfa
   namespace: sh-helm-test
diff --git a/src/test/helm/deployment_replicas_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml
similarity index 65%
rename from src/test/helm/deployment_replicas_test.yaml
rename to src/test/helm/deployment_pod_default_spec_values_test.yaml
index a02796b0fe..0ff87d737d 100644
--- a/src/test/helm/deployment_replicas_test.yaml
+++ b/src/test/helm/deployment_pod_default_spec_values_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,13 +22,13 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment container basics
 release:
   name: alfa
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
   ozgcloud:
     environment: test
@@ -37,12 +37,19 @@ set:
   sso:
     serverUrl: https://sso.company.local
 tests:
-  - it: should set the replica count
-    set:
-      replicaCount: 10
-    asserts:
-      - isKind:
-          of: Deployment
+ - 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.replicas
-          value: 10
\ No newline at end of file
+          path: spec.template.spec.terminationGracePeriodSeconds
+          value: 30
\ No newline at end of file
diff --git a/src/test/helm/deployment_realm_name_length_test.yaml b/src/test/helm/deployment_realm_name_length_test.yaml
index 8305d800d7..f5e8eb3ed6 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 9ef0c9aa2b..2d37c37e05 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 recouces
 release:
   name: alfa
 templates:
diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml
similarity index 94%
rename from src/test/helm/deployment_springProfile_test.yaml
rename to src/test/helm/deployment_springProfile_env_test.yaml
index 511917490f..780290a1c3 100644
--- a/src/test/helm/deployment_springProfile_test.yaml
+++ b/src/test/helm/deployment_springProfile_env_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment spring profile
 release:
   name: alfa
   namespace: sh-helm-test
@@ -41,8 +41,6 @@ tests:
     set:
       env.overrideSpringProfiles: oc,test,ea
     asserts:
-      - isKind:
-          of: Deployment
       - contains:
           path: spec.template.spec.containers[0].env
           content:
@@ -50,8 +48,6 @@ tests:
             value: oc,test,ea
   - it: should generate the spring profiles
     asserts:
-      - isKind:
-          of: Deployment
       - contains:
           path: spec.template.spec.containers[0].env
           content:
diff --git a/src/test/helm/deployment_usermanager_address_test.yaml b/src/test/helm/deployment_usermanager_address_env_test.yaml
similarity index 97%
rename from src/test/helm/deployment_usermanager_address_test.yaml
rename to src/test/helm/deployment_usermanager_address_env_test.yaml
index 59bc6ef7de..1498851c20 100644
--- a/src/test/helm/deployment_usermanager_address_test.yaml
+++ b/src/test/helm/deployment_usermanager_address_env_test.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment usermanager address env
 release:
   name: alfa
   namespace: sh-helm-test
diff --git a/src/test/helm/deployment_defaults_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
similarity index 57%
rename from src/test/helm/deployment_defaults_spec_test.yaml
rename to src/test/helm/deyploment_general_value_and_default_spec_test.yaml
index 96b6b4d8d4..8ab79d3ef2 100644
--- a/src/test/helm/deployment_defaults_spec_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,62 +22,58 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment general values
 release:
   name: alfa
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-set:  
+set:
   baseUrl: test.company.local
-  replicaCount: 5
   ozgcloud:
     environment: test
     bundesland: sh
     bezeichner: helm
   sso:
     serverUrl: https://sso.company.local
+
 tests:
-  - it: should work
+  - 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: alfa
+      - equal: 
+          path: metadata.namespace
+          value: sh-helm-test
+
+
+  - it: should have correct deyployment general spec values
+    asserts:
       - equal:
           path: spec.progressDeadlineSeconds
           value: 600
       - equal:
           path: spec.replicas
-          value: 5
+          value: 2
       - equal:
           path: spec.revisionHistoryLimit
           value: 10
-      - equal:
-          path: spec.selector.matchLabels["app.kubernetes.io/name"]
-          value: alfa
-      - equal:
-          path: spec.selector.matchLabels["app.kubernetes.io/namespace"]
-          value: sh-helm-test
-      - equal:
-          path: spec.strategy.rollingUpdate.maxSurge
-          value: 1
-      - equal:
-          path: spec.strategy.rollingUpdate.maxUnavailable
-          value: 0
-      - equal:
-          path: spec.strategy.type
-          value: RollingUpdate
-      - equal:
-          path: spec.template.spec.dnsPolicy
-          value: ClusterFirst
-      - equal:
-          path: spec.template.spec.imagePullSecrets[0].name
-          value: alfa-image-pull-secret
-      - 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
+  - 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/deployment_defaults_annotaion_test.yaml b/src/test/helm/ingress_defaults_annotaion_test.yaml
similarity index 96%
rename from src/test/helm/deployment_defaults_annotaion_test.yaml
rename to src/test/helm/ingress_defaults_annotaion_test.yaml
index e8185c86db..069e38601b 100644
--- a/src/test/helm/deployment_defaults_annotaion_test.yaml
+++ b/src/test/helm/ingress_defaults_annotaion_test.yaml
@@ -41,6 +41,8 @@ tests:
     asserts:
       - isKind:
           of: Ingress
+      - isAPIVersion:
+          of: networking.k8s.io/v1
       - equal:
           path: metadata.annotations["cert-manager.io/cluster-issuer"]
           value: letsencrypt-prod
diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress_nginx_tests.yaml
similarity index 100%
rename from src/test/helm/ingress-nginx-tests.yaml
rename to src/test/helm/ingress_nginx_tests.yaml
diff --git a/src/test/helm/keycloak-client-crd-test.yaml b/src/test/helm/keycloak_client_crd_test.yaml
similarity index 99%
rename from src/test/helm/keycloak-client-crd-test.yaml
rename to src/test/helm/keycloak_client_crd_test.yaml
index dd1a33fce2..17f2249b72 100644
--- a/src/test/helm/keycloak-client-crd-test.yaml
+++ b/src/test/helm/keycloak_client_crd_test.yaml
@@ -27,7 +27,7 @@ release:
   name: alfa
   namespace: by-helm-test
 templates:
-  - templates/keycloak-client-crd.yaml
+  - templates/keycloak_client_crd.yaml
 set:
   ozgcloud:
     bundesland: by
diff --git a/src/test/helm/keycloak-crd-test.yaml b/src/test/helm/keycloak_crd_test.yaml
similarity index 98%
rename from src/test/helm/keycloak-crd-test.yaml
rename to src/test/helm/keycloak_crd_test.yaml
index 8010a45e07..7303ec3e19 100644
--- a/src/test/helm/keycloak-crd-test.yaml
+++ b/src/test/helm/keycloak_crd_test.yaml
@@ -27,7 +27,7 @@ release:
   name: alfa
   namespace: by-helm-test
 templates:
-  - templates/keycloak-crd.yaml
+  - templates/keycloak_crd.yaml
 set:
   ozgcloud:
     environment: test
diff --git a/src/test/helm/keycloak-group-crd-test.yaml b/src/test/helm/keycloak_group_crd_test.yaml
similarity index 99%
rename from src/test/helm/keycloak-group-crd-test.yaml
rename to src/test/helm/keycloak_group_crd_test.yaml
index d72c99a0c5..a86024caed 100644
--- a/src/test/helm/keycloak-group-crd-test.yaml
+++ b/src/test/helm/keycloak_group_crd_test.yaml
@@ -27,7 +27,7 @@ release:
   name: alfa
   namespace: by-helm-test
 templates:
-  - templates/keycloak-group-crd.yaml
+  - templates/keycloak_group_crd.yaml
 tests:
   - it: should contain header data
     set:
diff --git a/src/test/helm/keycloak-user-crd-test.yaml b/src/test/helm/keycloak_user_crd_test.yaml
similarity index 99%
rename from src/test/helm/keycloak-user-crd-test.yaml
rename to src/test/helm/keycloak_user_crd_test.yaml
index 31dd7d2348..97d1116c82 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: alfa
   namespace: by-helm-test
 templates:
-  - templates/keycloak-user-crd.yaml
+  - templates/keycloak_user_crd.yaml
 tests:
   - it: should contain header data
     set:
diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml
index 31383e6c22..b2c3618952 100644
--- a/src/test/helm/network_policy_test.yaml
+++ b/src/test/helm/network_policy_test.yaml
@@ -37,6 +37,7 @@ tests:
     asserts:
       - isAPIVersion:
           of: networking.k8s.io/v1
+
   - it: should match kind
     asserts:
       - isKind:
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index d5dd89a475..a22bfee713 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -29,19 +29,40 @@ release:
 templates:
   - templates/service_monitor.yaml
 tests:
-  - it: should have the label component with value alfa-service-monitor attached
+  - it: should have basic info and the label component with value alfa-service-monitor attached
     asserts:
       - isKind:
           of: ServiceMonitor
+      - isAPIVersion:
+          of: monitoring.coreos.com/v1
+      - equal:
+          path: metadata.name
+          value: alfa
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
       - equal:
           path: metadata.labels["component"]
           value: alfa-service-monitor
+      
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: alfa
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: alfa
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: alfa-service-monitor
+            helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS
+
   - it: should have the metrics endpoint configured by default
     set:
       env.springProfiles: oc,stage
     asserts:
-      - isKind:
-          of: ServiceMonitor
       - contains:
           path: spec.endpoints
           content:
@@ -49,8 +70,6 @@ tests:
             path: /actuator/prometheus
   - it: should be able to enable the endpoint
     asserts:
-      - isKind:
-          of: ServiceMonitor
       - contains:
           path: spec.endpoints
           content:
diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml
index 8baec4baff..9749ab1b95 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -29,13 +29,21 @@ release:
 templates:
   - templates/service.yaml
 tests:
-  - it: should have the label component with value alfa-service attached
+  - it: should have basics and the label component with value alfa-service attached
     asserts:
       - isKind:
           of: Service
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.labels["component"]
           value: alfa-service
+      - equal:
+          path: metadata.name
+          value: alfa
+      - equal:
+          path: metadata.namespace
+          value: helm-test
   - it: should be of type ClusterIP
     asserts:
       - equal:
@@ -75,4 +83,24 @@ tests:
       - equal:
           path: spec.selector["app.kubernetes.io/namespace"]
           value: helm-test
-  
\ No newline at end of file
+  
+  - it: selector should contain the component label with the value alfa
+    asserts:
+      - equal:
+          path: spec.selector.component
+          value: alfa
+
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: alfa
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: alfa
+            app.kubernetes.io/namespace: helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: alfa-service
+            helm.sh/chart: alfa-0.0.0-MANAGED-BY-JENKINS
+           
\ No newline at end of file
-- 
GitLab