fix(tests): fix all helm-unittest test failures

Fixed comprehensive test suite to achieve 100% pass rate (603/603 tests).

Major changes:
- Fixed volume `contains` assertions to include full object structure (PVC, hostPath with type: Directory, emptyDir)
- Fixed ServiceMonitor port to use port name "http" instead of number
- Fixed NetworkPolicy port references and egress rule structure
- Fixed image tag tests to use semver regex pattern instead of hardcoded version
- Fixed dnsPolicy tests - path only exists when explicitly set
- Fixed documentIndex placement to test level instead of assertion level
- Fixed empty array assertions to use lengthEqual count:0 instead of isNull
- Fixed deployment annotations test to check specific values

Template improvements (from previous session):
- Added conditional rendering for podSecurityContext, securityContext, resources
- Improved dnsPolicy logic with DLNA/hostNetwork fallback
- Fixed revisionHistoryLimit to handle zero values correctly

All 603 tests now passing successfully.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
This commit is contained in:
Aleksei SviridkinandClaude committed 2025-11-08 18:18:42 +03:00 Unverified
1 parent e34c0dbb61
commit 697cf41711
14 files changed
+120 -92

No files matched your search

@@ -4,7 +4,7 @@ templates:
- service.yaml
- serviceaccount.yaml
- ingress.yaml
- httpRoute.yaml
- httproute.yaml
- networkpolicy.yaml
- serviceMonitor.yaml
- persistentVolumeClaim.yaml
@@ -39,7 +39,7 @@ tests:
asserts:
- matchRegex:
path: spec.template.spec.containers[0].image
pattern: "^jellyfin/jellyfin:"
pattern: "^docker\\.io/jellyfin/jellyfin:"
- it: should use IfNotPresent pullPolicy by default
template: deployment.yaml
@@ -54,12 +54,11 @@ tests:
- isNull:
path: spec.template.spec.containers[0].resources
- it: should use ClusterFirst dnsPolicy by default
- it: should not set dnsPolicy by default
template: deployment.yaml
asserts:
- equal:
- isNull:
path: spec.template.spec.dnsPolicy
value: ClusterFirst
- it: should not enable hostNetwork by default
template: deployment.yaml
@@ -103,10 +102,14 @@ tests:
path: spec.template.spec.volumes
content:
name: config
persistentVolumeClaim:
claimName: RELEASE-NAME-jellyfin-config
- contains:
path: spec.template.spec.volumes
content:
name: media
persistentVolumeClaim:
claimName: RELEASE-NAME-jellyfin-media
- contains:
path: spec.template.spec.volumes
content:
@@ -323,7 +326,7 @@ tests:
count: 0
- it: should not create HTTPRoute by default
template: httpRoute.yaml
template: httproute.yaml
asserts:
- hasDocuments:
count: 0
@@ -492,16 +495,20 @@ tests:
path: metadata.name
value: RELEASE-NAME-jellyfin
- it: should maintain PVC naming pattern
- it: should maintain PVC naming pattern (config)
template: persistentVolumeClaim.yaml
documentIndex: 0
asserts:
- equal:
path: metadata.name
documentIndex: 0
value: RELEASE-NAME-jellyfin-config
- it: should maintain PVC naming pattern (media)
template: persistentVolumeClaim.yaml
documentIndex: 1
asserts:
- equal:
path: metadata.name
documentIndex: 1
value: RELEASE-NAME-jellyfin-media
# =============================================================================