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

---
 ...ull-secret.yaml => image_pull_secret.yaml} |  0
 ...yment_container_security_context_test.yaml |  2 -
 .../helm/deployment_defaults_labels_test.yaml | 25 +++---
 ..._defaults_spec_containers_health_test.yaml | 81 +++++++++++++++++++
 ...loyment_defaults_spec_containers_test.yaml | 74 +++++++++++++++++
 ...aults_topologySpreadConstraints_test.yaml} | 33 +++-----
 ...ml => deployment_env_customList_test.yaml} |  4 +-
 .../deployment_imagepull_secret_test.yaml     |  4 -
 .../helm/deployment_liveness_probe_test.yaml  |  4 +-
 ...ployment_pod_default_spec_values_test.yaml | 49 +++++++++++
 .../deployment_realm_name_length_test.yaml    | 41 ++++++++++
 src/test/helm/deployment_resources_test.yaml  |  2 +-
 ...l => deployment_routing_strategy_env.yaml} |  2 +-
 ...=> deployment_springProfile_env_test.yaml} |  4 -
 ...t_general_value_and_default_spec_test.yaml | 73 +++++++++++++++++
 ...-test.yaml => image_pull_secret_test.yaml} |  2 +-
 ...or-not.yaml => ingress_create_or_not.yaml} |  0
 src/test/helm/ingress_host_test.yaml          | 18 -----
 ...nx-tests.yaml => ingress_nginx_tests.yaml} |  0
 src/test/helm/service_account_test.yaml       |  5 +-
 src/test/helm/service_monitor_test.yaml       | 32 ++++++--
 src/test/helm/service_test.yaml               | 28 ++++++-
 22 files changed, 403 insertions(+), 80 deletions(-)
 rename src/main/helm/templates/{image-pull-secret.yaml => image_pull_secret.yaml} (100%)
 create mode 100644 src/test/helm/deployment_defaults_spec_containers_health_test.yaml
 create mode 100644 src/test/helm/deployment_defaults_spec_containers_test.yaml
 rename src/test/helm/{deployment_test.yaml => deployment_defaults_topologySpreadConstraints_test.yaml} (60%)
 rename src/test/helm/{deployment_env_test.yaml => deployment_env_customList_test.yaml} (94%)
 create mode 100644 src/test/helm/deployment_pod_default_spec_values_test.yaml
 create mode 100644 src/test/helm/deployment_realm_name_length_test.yaml
 rename src/test/helm/{deployment_routing-strategy.yaml => deployment_routing_strategy_env.yaml} (98%)
 rename src/test/helm/{deployment_springProfile_test.yaml => deployment_springProfile_env_test.yaml} (95%)
 create mode 100644 src/test/helm/deyploment_general_value_and_default_spec_test.yaml
 rename src/test/helm/{image-pull-secret-test.yaml => image_pull_secret_test.yaml} (97%)
 rename src/test/helm/{ingress-create-or-not.yaml => ingress_create_or_not.yaml} (100%)
 delete mode 100644 src/test/helm/ingress_host_test.yaml
 rename src/test/helm/{ingress-nginx-tests.yaml => ingress_nginx_tests.yaml} (100%)

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/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml
index ddaa3ee20..dc0e216fb 100644
--- a/src/test/helm/deployment_container_security_context_test.yaml
+++ b/src/test/helm/deployment_container_security_context_test.yaml
@@ -33,8 +33,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_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index e5688f081..67914420a 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -28,22 +28,21 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
-  - templates/service_monitor.yaml
-  - templates/service.yaml
+
 set:
   ozgcloud.environment: test
 tests:
   - it: check default labels
     asserts:
       - equal:
-          path: metadata.labels["app.kubernetes.io/instance"]
-          value: afm-adapter
-      - equal:
-          path: metadata.labels["app.kubernetes.io/name"]
-          value: intelliform-adapter
-      - equal:
-          path: metadata.labels["app.kubernetes.io/part-of"]
-          value: ozgcloud
-      - equal:
-          path: metadata.labels["app.kubernetes.io/namespace"]
-          value: sh-helm-test
+          path: metadata.labels
+          value: 
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: intelliform-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
+
diff --git a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
new file mode 100644
index 000000000..b54b3b649
--- /dev/null
+++ b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
@@ -0,0 +1,81 @@
+#
+# 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
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+tests:
+  - it: should work
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.failureThreshold
+          value: 3
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.path
+          value: /actuator/health/readiness
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.port
+          value: 8081
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme
+          value: HTTP
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.periodSeconds
+          value: 10
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.successThreshold
+          value: 1
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds
+          value: 3  
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.failureThreshold
+          value: 10
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.path
+          value: /actuator/health/readiness
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.port
+          value: 8081
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.scheme
+          value: HTTP
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds
+          value: 30
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.periodSeconds
+          value: 5
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.successThreshold
+          value: 1
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.timeoutSeconds
+          value: 5
+      
\ No newline at end of file
diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
new file mode 100644
index 000000000..c62cfbadd
--- /dev/null
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -0,0 +1,74 @@
+#
+# 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
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:  
+  ozgcloud.environment: test
+tests:
+  - it: check for some standard values
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: docker.ozg-sh.de/intelliform-adapter:latest
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: Always
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: intelliform-adapter
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].containerPort
+          value: 8080
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].name
+          value: 8080tcp1
+      - 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: 8081
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].name
+          value: metrics
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].protocol
+          value: TCP
\ No newline at end of file
diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
similarity index 60%
rename from src/test/helm/deployment_test.yaml
rename to src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
index 7edba4d79..e3dc00914 100644
--- a/src/test/helm/deployment_test.yaml
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -22,33 +22,26 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment topology
 release:
-  name: intelliform-adapter
+  name: eingang-manager
   namespace: sh-helm-test
 templates:
-  - deployment.yaml
-set:
+  - templates/deployment.yaml
+set:  
   ozgcloud.environment: test
 tests:
-  - it: validate image type and container image
+  - it: check default values
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
-          path: spec.template.spec.containers[0].image
-          value: docker.ozg-sh.de/intelliform-adapter:latest
-  - it: validate image pull secret resource name
-    asserts:
+          path: spec.template.spec.topologySpreadConstraints[0].maxSkew
+          value: 1
       - equal:
-          path: spec.template.spec.imagePullSecrets[0].name
-          value: intelliform-adapter-image-pull-secret
+          path: spec.template.spec.topologySpreadConstraints[0].topologyKey
+          value: kubernetes.io/hostname
       - equal:
-          path: spec.template.spec.containers[0].image
-          value: docker.ozg-sh.de/intelliform-adapter:latest
-  - it: should have label ozg-component
-    asserts:
+          path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable
+          value: DoNotSchedule
       - equal:
-          path: metadata.labels.ozg-component
-          value: eingangsadapter
-
+          path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
+          value: eingang-manager
\ No newline at end of file
diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_customList_test.yaml
similarity index 94%
rename from src/test/helm/deployment_env_test.yaml
rename to src/test/helm/deployment_env_customList_test.yaml
index fbc35ac56..9cd1d4c7a 100644
--- a/src/test/helm/deployment_env_test.yaml
+++ b/src/test/helm/deployment_env_customList_test.yaml
@@ -22,14 +22,13 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test environments
+suite: test environments customList
 templates:
   - templates/deployment.yaml
 set:
   ozgcloud.environment: test
 tests:
   - it: check customList
-    template: deployment.yaml
     set:
       env.customList:
         - name: my_test_environment_name
@@ -41,7 +40,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_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index e48100c1b..cd470d71a 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -33,8 +33,6 @@ set:
 tests:
   - it: should use default imagePull secret
     asserts:
-      - isKind:
-          of: Deployment
       - equal:
           path: spec.template.spec.imagePullSecrets[0].name
           value: afm-adapter-image-pull-secret
@@ -42,8 +40,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 bca6419f5..7771c84c7 100644
--- a/src/test/helm/deployment_liveness_probe_test.yaml
+++ b/src/test/helm/deployment_liveness_probe_test.yaml
@@ -22,20 +22,18 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment liveness probe
 templates:
   - templates/deployment.yaml
 set:
   ozgcloud.environment: test
 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:
diff --git a/src/test/helm/deployment_pod_default_spec_values_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml
new file mode 100644
index 000000000..4a7c853c2
--- /dev/null
+++ b/src/test/helm/deployment_pod_default_spec_values_test.yaml
@@ -0,0 +1,49 @@
+ #
+# 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: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+tests:
+ - 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_realm_name_length_test.yaml b/src/test/helm/deployment_realm_name_length_test.yaml
new file mode 100644
index 000000000..5cb46db2b
--- /dev/null
+++ b/src/test/helm/deployment_realm_name_length_test.yaml
@@ -0,0 +1,41 @@
+#
+# 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 ozgcloud bezeichner length
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/ingress.yaml
+
+tests:
+  - it: should fail on bezeichner length longer than 46 characters
+    set:
+      ozgcloud:
+        bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+        environment: test
+        bundesland: by
+    asserts:
+      - failedTemplate:
+          errorMessage: Bezeichner test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 46 Zeichen)
\ No newline at end of file
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index e945125e6..e31b3ebd6 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 resources
 release:
   name: afm-adapter
 templates:
diff --git a/src/test/helm/deployment_routing-strategy.yaml b/src/test/helm/deployment_routing_strategy_env.yaml
similarity index 98%
rename from src/test/helm/deployment_routing-strategy.yaml
rename to src/test/helm/deployment_routing_strategy_env.yaml
index 72d204688..39e5dac3a 100644
--- a/src/test/helm/deployment_routing-strategy.yaml
+++ b/src/test/helm/deployment_routing_strategy_env.yaml
@@ -22,7 +22,7 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test deployment routing strategy
 release:
   name: intelliform-adapter
   namespace: sh-helm-test
diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml
similarity index 95%
rename from src/test/helm/deployment_springProfile_test.yaml
rename to src/test/helm/deployment_springProfile_env_test.yaml
index 446ce8f43..0b89d1a71 100644
--- a/src/test/helm/deployment_springProfile_test.yaml
+++ b/src/test/helm/deployment_springProfile_env_test.yaml
@@ -33,8 +33,6 @@ tests:
     set:
       env.overrideSpringProfiles: oc,stage,ea
     asserts:
-      - isKind:
-          of: Deployment
       - contains:
           path: spec.template.spec.containers[0].env
           content:
@@ -44,8 +42,6 @@ tests:
     set:
       ozgcloud.environment: test
     asserts:
-      - isKind:
-          of: Deployment
       - contains:
           path: spec.template.spec.containers[0].env
           content:
diff --git a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
new file mode 100644
index 000000000..ed741cae1
--- /dev/null
+++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
@@ -0,0 +1,73 @@
+#
+# 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 general values
+release:
+  name: alfa
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+
+tests:
+  - 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: null
+      - 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/image-pull-secret-test.yaml b/src/test/helm/image_pull_secret_test.yaml
similarity index 97%
rename from src/test/helm/image-pull-secret-test.yaml
rename to src/test/helm/image_pull_secret_test.yaml
index 71e214918..25b628479 100644
--- a/src/test/helm/image-pull-secret-test.yaml
+++ b/src/test/helm/image_pull_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: intelliform-adaptero
   namespace: helm-test
diff --git a/src/test/helm/ingress-create-or-not.yaml b/src/test/helm/ingress_create_or_not.yaml
similarity index 100%
rename from src/test/helm/ingress-create-or-not.yaml
rename to src/test/helm/ingress_create_or_not.yaml
diff --git a/src/test/helm/ingress_host_test.yaml b/src/test/helm/ingress_host_test.yaml
deleted file mode 100644
index 0889865bd..000000000
--- a/src/test/helm/ingress_host_test.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-suite: test ozgcloud bezeichner length
-release:
-  name: eingang-manager
-  namespace: sh-helm-test
-templates:
-  - templates/ingress.yaml
-
-tests:
-  - it: should fail on bezeichner (in ingress host) length longer than 46 characters
-    template: ingress.yaml
-    set:
-      ozgcloud:
-        bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
-        environment: test
-        bundesland: by
-    asserts:
-      - failedTemplate:
-          errorMessage: Bezeichner test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 46 Zeichen)
\ No newline at end of file
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/service_account_test.yaml b/src/test/helm/service_account_test.yaml
index 52561bed1..81b86cc05 100644
--- a/src/test/helm/service_account_test.yaml
+++ b/src/test/helm/service_account_test.yaml
@@ -37,12 +37,15 @@ tests:
     asserts:
       - isKind:
           of: ServiceAccount
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: afm-adapter-service-account
       - equal:
           path: metadata.namespace
-          value: sh-helm-test
+          value: sh-helm-test    
+
   - it: should create default fs adapter service account name
     set:
       image.name: formsolutions-adapter
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index 55ebac306..c85a7a6b6 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -22,26 +22,48 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test service monitor
 release:
   name: afm-adapter
   namespace: sh-helm-test
 templates:
   - templates/service_monitor.yaml
 tests:
-  - it: should have the label component with value afm-adapter-service-monitor attached
+  - it: should have basic info and the label component with value afm-adapter-service-monitor attached
     asserts:
       - isKind:
           of: ServiceMonitor
+      - isAPIVersion:
+          of: monitoring.coreos.com/v1
+      - equal:
+          path: metadata.name
+          value: afm-adapter
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
       - equal:
           path: metadata.labels["component"]
           value: afm-adapter-service-monitor
+      
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: afm-adapter-service-monitor
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
+
   - 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 +71,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 900401848..ebc38d5c4 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -22,20 +22,28 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
-suite: test deployment
+suite: test service
 release:
   name: afm-adapter
   namespace: sh-helm-test
 templates:
   - templates/service.yaml
 tests:
-  - it: should have the label component with value afm-adapter-service attached
+  - it: should have basics and the label component with value afm-adapter-service attached
     asserts:
       - isKind:
           of: Service
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.labels["component"]
           value: afm-adapter-service
+      - equal:
+          path: metadata.name
+          value: afm-adapter
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
   - it: should be of type ClusterIP
     asserts:
       - equal:
@@ -75,4 +83,18 @@ tests:
       - equal:
           path: spec.selector["app.kubernetes.io/namespace"]
           value: sh-helm-test
-  
\ No newline at end of file
+
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: afm-adapter-service
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
\ No newline at end of file
-- 
GitLab