Skip to content

Commit 902b952

Browse files
feat(common): add unittests example (#484)
1 parent 423b483 commit 902b952

File tree

9 files changed

+114
-63
lines changed

9 files changed

+114
-63
lines changed

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,10 @@ yarn-error.log
2222
!.pnp.loader.mjs
2323

2424
# Exclude chart dependencies
25-
charts/*/charts
25+
charts/**/charts
26+
# Exclude helm-unittests stuff
27+
charts/**/__snapshot__
28+
charts/**/.debug
29+
30+
# Exclude .prof files
31+
**/*.prof
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
dependencies:
2+
- name: common
3+
repository: file://../../../
4+
version: 0.0.1-canary.1
5+
digest: sha256:5498d39c1bbfa2dd79c42e3c7da74a8e0774177903f389cfcfa6a66168c4f671
6+
generated: "2025-02-19T00:14:42.540780259Z"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v2
2+
name: single-component-test
3+
version: 0.1.0
4+
5+
# Depend on the parent 'common' chart from local file
6+
# Omit 'version' to avoid confusion with library version
7+
dependencies:
8+
- name: common
9+
repository: "file://../../../"
10+
version: ">=0.0.0-0"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
dynamicComponents: false
2+
3+
components:
4+
- myComponent
5+
6+
componentLayering:
7+
myComponent:
8+
- myComponentDefaults
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{{- include "common.render" . -}}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
suite: "Single Component Tests"
2+
3+
templates:
4+
- "templates/render.yaml"
5+
6+
tests:
7+
- it: "Should render a resource with correct replicas"
8+
asserts:
9+
- equal:
10+
path: "spec.replicas"
11+
value: 2
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
myComponent:
2+
__enabled: true
3+
workload:
4+
__enabled: true
5+
spec:
6+
image: "alpine:3.17"
7+
replicas: 2
8+
9+
myComponentDefaults: {}

charts/common/templates/_init.tpl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
{{/* Performs initialization, loading of resources and initial merges */}}
22
{{- define "common.init._init" -}}
33
{{/* Initialize state store */}}
4-
{{- $_ := set $ "__common" dict }}
5-
{{- $_ := set $.__common "cache" dict }}
4+
{{- $_ := set $ "__common" dict -}}
5+
{{- $_ := set $.__common "cache" dict -}}
66
{{/* Define the ordered steps */}}
77
{{- $initSteps := list
88
"common.init._setTemplateCtx"
99
"common.init._loadConfig"
1010
"common.init._loadResources"
1111
"common.resources.mergeValues"
1212
"common.resources.templateValues"
13-
}}
13+
-}}
1414
{{/* execute them with conditional output omission */}}
15-
{{- range $step := $initSteps }}
16-
{{- if $.Values.__debug }}
15+
{{- range $step := $initSteps -}}
16+
{{- if $.Values.__debug -}}
1717
{{- include (printf "%s" $step) $ -}}
18-
{{- else }}
18+
{{- else -}}
1919
{{- $_ := include (printf "%s" $step) $ -}}
20-
{{- end }}
21-
{{- end }}
22-
{{- end }}
20+
{{- end -}}
21+
{{- end -}}
22+
{{- end -}}
2323

2424
{{/*
2525
Load and validate the library configuration.

charts/common/templates/_render.tpl

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
1-
{{- define "common.render" }}
2-
{{- if $.Values.debug }}
3-
{{- include "common.init._init" $ }}
4-
{{- else }}
5-
{{- $_ := include "common.init._init" $ }}
6-
{{- end }}
7-
{{- $templateCtx := $.__common.config.templateCtx }}
8-
{{- range $component, $componentValues := $templateCtx.ComponentValues }}
9-
{{- if (default false $componentValues.__enabled) }}
10-
{{- $_ := set $templateCtx "Self" $componentValues }}
11-
{{- $_ := set $templateCtx "name" (printf "%s" $component) }}
12-
{{- range $resourceName, $keysData := $.__common.resourceKeysMap }}
13-
{{- $resourcesList := list }}
14-
{{- if hasKey $keysData "single" }}
15-
{{- range $resourceKey := $keysData.single }}
16-
{{- if hasKey $componentValues $resourceKey }}
17-
{{- $resource := index $componentValues $resourceKey }}
18-
{{- if and (hasKey $resource "__enabled") (eq $resource.__enabled true) }}
19-
{{- $resourcesList = append $resourcesList $resource }}
20-
{{- end }}
21-
{{- end }}
22-
{{- end }}
23-
{{- end }}
24-
{{- if hasKey $keysData "multiple" }}
25-
{{- range $resourceKey := $keysData.multiple }}
26-
{{- if hasKey $componentValues $resourceKey }}
27-
{{- range $resourceName, $resource := (index $componentValues $resourceKey) }}
28-
{{- if and (hasKey $resource "__enabled") (eq $resource.__enabled true) }}
29-
{{- $resourcesList = append $resourcesList $resource }}
30-
{{- end }}
31-
{{- end }}
32-
{{- end }}
33-
{{- end }}
34-
{{- end }}
35-
{{- range $resource := $resourcesList }}
36-
{{- $base := tpl (index $.__common.resources $resourceName "defaults") (list $ $templateCtx) | fromYaml }}
37-
{{- $_ := (list $ $base $resource) | include "common.utils.deepMerge" }}
38-
{{- $result := $.__common.fcallResult }}
1+
{{- define "common.render" -}}
2+
{{- if $.Values.debug -}}
3+
{{- include "common.init._init" $ -}}
4+
{{- else -}}
5+
{{- $_ := include "common.init._init" $ -}}
6+
{{- end -}}
7+
{{- $templateCtx := $.__common.config.templateCtx -}}
8+
{{- range $component, $componentValues := $templateCtx.ComponentValues -}}
9+
{{- if (default false $componentValues.__enabled) -}}
10+
{{- $_ := set $templateCtx "Self" $componentValues -}}
11+
{{- $_ := set $templateCtx "name" (printf "%s" $component) -}}
12+
{{- range $resourceName, $keysData := $.__common.resourceKeysMap -}}
13+
{{- $resourcesList := list -}}
14+
{{- if hasKey $keysData "single" -}}
15+
{{- range $resourceKey := $keysData.single -}}
16+
{{- if hasKey $componentValues $resourceKey -}}
17+
{{- $resource := index $componentValues $resourceKey -}}
18+
{{- if and (hasKey $resource "__enabled") (eq $resource.__enabled true) -}}
19+
{{- $resourcesList = append $resourcesList $resource -}}
20+
{{- end -}}
21+
{{- end -}}
22+
{{- end -}}
23+
{{- end -}}
24+
{{- if hasKey $keysData "multiple" -}}
25+
{{- range $resourceKey := $keysData.multiple -}}
26+
{{- if hasKey $componentValues $resourceKey -}}
27+
{{- range $resourceName, $resource := (index $componentValues $resourceKey) -}}
28+
{{- if and (hasKey $resource "__enabled") (eq $resource.__enabled true) -}}
29+
{{- $resourcesList = append $resourcesList $resource -}}
30+
{{- end -}}
31+
{{- end -}}
32+
{{- end -}}
33+
{{- end -}}
34+
{{- end -}}
35+
{{- range $resource := $resourcesList -}}
36+
{{- $base := tpl (index $.__common.resources $resourceName "defaults") (list $ $templateCtx) | fromYaml -}}
37+
{{- $_ := (list $ $base $resource) | include "common.utils.deepMerge" -}}
38+
{{- $result := $.__common.fcallResult -}}
3939
{{/* We should prune before transforming */}}
40-
{{- $_ := (list $ $result) | include "common.utils.pruneOutput" }}
41-
{{- $prunedResult := $.__common.fcallResult }}
42-
{{- if hasKey (index $.__common.resources $resourceName) "transforms" }}
43-
{{- $transformsTpl := index $.__common.resources $resourceName "transforms" }}
44-
{{- $_ := tpl $transformsTpl (list $ $prunedResult) }}
45-
{{- $result = $.__common.fcallResult }}
46-
{{- $_ := (list $ $result) | include "common.utils.pruneOutput" }}
47-
{{- $prunedResult = $.__common.fcallResult }}
48-
{{- end }}
49-
{{ $prunedResult | toYaml }}
40+
{{- $_ := (list $ $result) | include "common.utils.pruneOutput" -}}
41+
{{- $prunedResult := $.__common.fcallResult -}}
42+
{{- if hasKey (index $.__common.resources $resourceName) "transforms" -}}
43+
{{- $transformsTpl := index $.__common.resources $resourceName "transforms" -}}
44+
{{- $_ := tpl $transformsTpl (list $ $prunedResult) -}}
45+
{{- $result = $.__common.fcallResult -}}
46+
{{- $_ := (list $ $result) | include "common.utils.pruneOutput" -}}
47+
{{- $prunedResult = $.__common.fcallResult -}}
48+
{{- end -}}
49+
{{- $prunedResult | toYaml }}
5050
---
51-
{{- end }}
52-
{{- end }}
53-
{{- end }}
54-
{{- end }}
55-
{{- end }}
51+
{{- end -}}
52+
{{- end -}}
53+
{{- end -}}
54+
{{- end -}}
55+
{{- end -}}

0 commit comments

Comments
 (0)