Skip to content

Commit c02e068

Browse files
authored
chore: Convert tests to use documentSelector instead of documentIndex (#100)
Fixes: HDX-2199
1 parent 0f05519 commit c02e068

10 files changed

+369
-262
lines changed

charts/hdx-oss-v2/tests/clickhouse-deployment_test.yaml

Lines changed: 67 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
suite: Test ClickHouse Deployment
22
templates:
33
- clickhouse-deployment.yaml
4+
5+
# Common documentSelector patterns using YAML anchors
6+
_selectors:
7+
deployment: &deployment-selector
8+
path: kind
9+
value: Deployment
10+
service: &service-selector
11+
path: kind
12+
value: Service
13+
config-configmap: &config-configmap-selector
14+
path: metadata.name
15+
value: RELEASE-NAME-hdx-oss-v2-clickhouse-config
16+
users-configmap: &users-configmap-selector
17+
path: metadata.name
18+
value: RELEASE-NAME-hdx-oss-v2-clickhouse-users
19+
data-pvc: &data-pvc-selector
20+
path: metadata.name
21+
value: RELEASE-NAME-hdx-oss-v2-clickhouse-data
22+
logs-pvc: &logs-pvc-selector
23+
path: metadata.name
24+
value: RELEASE-NAME-hdx-oss-v2-clickhouse-logs
425
tests:
526
- it: should render expected kubernetes resources
627
set:
@@ -16,22 +37,22 @@ tests:
1637
asserts:
1738
- hasDocuments:
1839
count: 6
19-
- documentIndex: 0
40+
- documentSelector: *deployment-selector
2041
isKind:
2142
of: Deployment
22-
- documentIndex: 1
43+
- documentSelector: *service-selector
2344
isKind:
2445
of: Service
25-
- documentIndex: 2
46+
- documentSelector: *config-configmap-selector
2647
isKind:
2748
of: ConfigMap
28-
- documentIndex: 3
49+
- documentSelector: *users-configmap-selector
2950
isKind:
3051
of: ConfigMap
31-
- documentIndex: 4
52+
- documentSelector: *data-pvc-selector
3253
isKind:
3354
of: PersistentVolumeClaim
34-
- documentIndex: 5
55+
- documentSelector: *logs-pvc-selector
3556
isKind:
3657
of: PersistentVolumeClaim
3758

@@ -46,11 +67,11 @@ tests:
4667
dataSize: 10Gi
4768
logSize: 5Gi
4869
asserts:
49-
- documentIndex: 4
70+
- documentSelector: *data-pvc-selector
5071
equal:
5172
path: spec.storageClassName
5273
value: "fast-ssd"
53-
- documentIndex: 5
74+
- documentSelector: *logs-pvc-selector
5475
equal:
5576
path: spec.storageClassName
5677
value: "fast-ssd"
@@ -66,10 +87,10 @@ tests:
6687
dataSize: 10Gi
6788
logSize: 5Gi
6889
asserts:
69-
- documentIndex: 4
90+
- documentSelector: *data-pvc-selector
7091
isNull:
7192
path: spec.storageClassName
72-
- documentIndex: 5
93+
- documentSelector: *logs-pvc-selector
7394
isNull:
7495
path: spec.storageClassName
7596

@@ -82,35 +103,35 @@ tests:
82103
dataSize: 10Gi
83104
logSize: 5Gi
84105
asserts:
85-
- documentIndex: 0
106+
- documentSelector: *deployment-selector
86107
isKind:
87108
of: Deployment
88-
- documentIndex: 0
109+
- documentSelector: *deployment-selector
89110
equal:
90111
path: spec.template.spec.volumes[2].name
91112
value: data
92-
- documentIndex: 0
113+
- documentSelector: *deployment-selector
93114
isNotNull:
94115
path: spec.template.spec.volumes[2].persistentVolumeClaim
95-
- documentIndex: 0
116+
- documentSelector: *deployment-selector
96117
matchRegex:
97118
path: spec.template.spec.volumes[2].persistentVolumeClaim.claimName
98119
pattern: .*-clickhouse-data$
99-
- documentIndex: 0
120+
- documentSelector: *deployment-selector
100121
isNull:
101122
path: spec.template.spec.volumes[2].emptyDir
102-
- documentIndex: 0
123+
- documentSelector: *deployment-selector
103124
equal:
104125
path: spec.template.spec.volumes[3].name
105126
value: logs
106-
- documentIndex: 0
127+
- documentSelector: *deployment-selector
107128
isNotNull:
108129
path: spec.template.spec.volumes[3].persistentVolumeClaim
109-
- documentIndex: 0
130+
- documentSelector: *deployment-selector
110131
matchRegex:
111132
path: spec.template.spec.volumes[3].persistentVolumeClaim.claimName
112133
pattern: .*-clickhouse-logs$
113-
- documentIndex: 0
134+
- documentSelector: *deployment-selector
114135
isNull:
115136
path: spec.template.spec.volumes[3].emptyDir
116137

@@ -123,27 +144,27 @@ tests:
123144
asserts:
124145
- hasDocuments:
125146
count: 4
126-
- documentIndex: 0
147+
- documentSelector: *deployment-selector
127148
isKind:
128149
of: Deployment
129-
- documentIndex: 0
150+
- documentSelector: *deployment-selector
130151
equal:
131152
path: spec.template.spec.volumes[2].name
132153
value: data
133-
- documentIndex: 0
154+
- documentSelector: *deployment-selector
134155
isNotNull:
135156
path: spec.template.spec.volumes[2].emptyDir
136-
- documentIndex: 0
157+
- documentSelector: *deployment-selector
137158
isNull:
138159
path: spec.template.spec.volumes[2].persistentVolumeClaim
139-
- documentIndex: 0
160+
- documentSelector: *deployment-selector
140161
equal:
141162
path: spec.template.spec.volumes[3].name
142163
value: logs
143-
- documentIndex: 0
164+
- documentSelector: *deployment-selector
144165
isNotNull:
145166
path: spec.template.spec.volumes[3].emptyDir
146-
- documentIndex: 0
167+
- documentSelector: *deployment-selector
147168
isNull:
148169
path: spec.template.spec.volumes[3].persistentVolumeClaim
149170

@@ -153,7 +174,7 @@ tests:
153174
enabled: true
154175
port: 8123
155176
asserts:
156-
- documentIndex: 0
177+
- documentSelector: *deployment-selector
157178
isSubset:
158179
path: spec.template.spec.containers[0].livenessProbe
159180
content:
@@ -171,7 +192,7 @@ tests:
171192
enabled: true
172193
port: 8123
173194
asserts:
174-
- documentIndex: 0
195+
- documentSelector: *deployment-selector
175196
isSubset:
176197
path: spec.template.spec.containers[0].readinessProbe
177198
content:
@@ -190,7 +211,7 @@ tests:
190211
livenessProbe:
191212
enabled: false
192213
asserts:
193-
- documentIndex: 0
214+
- documentSelector: *deployment-selector
194215
isNull:
195216
path: spec.template.spec.containers[0].livenessProbe
196217

@@ -201,7 +222,7 @@ tests:
201222
readinessProbe:
202223
enabled: false
203224
asserts:
204-
- documentIndex: 0
225+
- documentSelector: *deployment-selector
205226
isNull:
206227
path: spec.template.spec.containers[0].readinessProbe
207228

@@ -217,7 +238,7 @@ tests:
217238
timeoutSeconds: 10
218239
failureThreshold: 5
219240
asserts:
220-
- documentIndex: 0
241+
- documentSelector: *deployment-selector
221242
isSubset:
222243
path: spec.template.spec.containers[0].livenessProbe
223244
content:
@@ -241,7 +262,7 @@ tests:
241262
timeoutSeconds: 3
242263
failureThreshold: 2
243264
asserts:
244-
- documentIndex: 0
265+
- documentSelector: *deployment-selector
245266
isSubset:
246267
path: spec.template.spec.containers[0].readinessProbe
247268
content:
@@ -259,11 +280,11 @@ tests:
259280
enabled: true
260281
port: 8124
261282
asserts:
262-
- documentIndex: 0
283+
- documentSelector: *deployment-selector
263284
equal:
264285
path: spec.template.spec.containers[0].livenessProbe.httpGet.port
265286
value: 8124
266-
- documentIndex: 0
287+
- documentSelector: *deployment-selector
267288
equal:
268289
path: spec.template.spec.containers[0].readinessProbe.httpGet.port
269290
value: 8124
@@ -279,17 +300,17 @@ tests:
279300
global:
280301
keepPVC: true
281302
asserts:
282-
- documentIndex: 4
303+
- documentSelector: *data-pvc-selector
283304
isKind:
284305
of: PersistentVolumeClaim
285-
- documentIndex: 4
306+
- documentSelector: *data-pvc-selector
286307
equal:
287308
path: metadata.annotations["helm.sh/resource-policy"]
288309
value: keep
289-
- documentIndex: 5
310+
- documentSelector: *logs-pvc-selector
290311
isKind:
291312
of: PersistentVolumeClaim
292-
- documentIndex: 5
313+
- documentSelector: *logs-pvc-selector
293314
equal:
294315
path: metadata.annotations["helm.sh/resource-policy"]
295316
value: keep
@@ -305,16 +326,16 @@ tests:
305326
global:
306327
keepPVC: false
307328
asserts:
308-
- documentIndex: 4
329+
- documentSelector: *data-pvc-selector
309330
isKind:
310331
of: PersistentVolumeClaim
311-
- documentIndex: 4
332+
- documentSelector: *data-pvc-selector
312333
isNull:
313334
path: metadata.annotations
314-
- documentIndex: 5
335+
- documentSelector: *logs-pvc-selector
315336
isKind:
316337
of: PersistentVolumeClaim
317-
- documentIndex: 5
338+
- documentSelector: *logs-pvc-selector
318339
isNull:
319340
path: metadata.annotations
320341

@@ -327,16 +348,16 @@ tests:
327348
dataSize: 10Gi
328349
logSize: 5Gi
329350
asserts:
330-
- documentIndex: 4
351+
- documentSelector: *data-pvc-selector
331352
isKind:
332353
of: PersistentVolumeClaim
333-
- documentIndex: 4
354+
- documentSelector: *data-pvc-selector
334355
isNull:
335356
path: metadata.annotations
336-
- documentIndex: 5
357+
- documentSelector: *logs-pvc-selector
337358
isKind:
338359
of: PersistentVolumeClaim
339-
- documentIndex: 5
360+
- documentSelector: *logs-pvc-selector
340361
isNull:
341362
path: metadata.annotations
342363

charts/hdx-oss-v2/tests/clickhouse-service_test.yaml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
suite: Test Clickhouse Service
22
templates:
33
- clickhouse-deployment.yaml
4+
5+
# Common documentSelector patterns using YAML anchors
6+
_selectors:
7+
service: &service-selector
8+
path: kind
9+
value: Service
410
tests:
511
- it: should use LoadBalancer type when configured
612
set:
713
clickhouse:
814
service:
915
type: LoadBalancer
1016
asserts:
11-
- documentIndex: 1
17+
- documentSelector: *service-selector
1218
equal:
1319
path: spec.type
1420
value: LoadBalancer
@@ -19,7 +25,7 @@ tests:
1925
service:
2026
type: NodePort
2127
asserts:
22-
- documentIndex: 1
28+
- documentSelector: *service-selector
2329
equal:
2430
path: spec.type
2531
value: NodePort
@@ -32,11 +38,11 @@ tests:
3238
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
3339
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
3440
asserts:
35-
- documentIndex: 1
41+
- documentSelector: *service-selector
3642
equal:
3743
path: metadata.annotations["service.beta.kubernetes.io/aws-load-balancer-internal"]
3844
value: "true"
39-
- documentIndex: 1
45+
- documentSelector: *service-selector
4046
equal:
4147
path: metadata.annotations["service.beta.kubernetes.io/aws-load-balancer-type"]
4248
value: "nlb"
@@ -47,7 +53,7 @@ tests:
4753
service:
4854
annotations: {}
4955
asserts:
50-
- documentIndex: 1
56+
- documentSelector: *service-selector
5157
isNull:
5258
path: metadata.annotations
5359

@@ -60,15 +66,15 @@ tests:
6066
cloud.google.com/load-balancer-type: "Internal"
6167
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
6268
asserts:
63-
- documentIndex: 1
69+
- documentSelector: *service-selector
6470
equal:
6571
path: spec.type
6672
value: LoadBalancer
67-
- documentIndex: 1
73+
- documentSelector: *service-selector
6874
equal:
6975
path: metadata.annotations["cloud.google.com/load-balancer-type"]
7076
value: "Internal"
71-
- documentIndex: 1
77+
- documentSelector: *service-selector
7278
equal:
7379
path: metadata.annotations["service.beta.kubernetes.io/azure-load-balancer-internal"]
7480
value: "true"
@@ -78,7 +84,7 @@ tests:
7884
clickhouse:
7985
service: {}
8086
asserts:
81-
- documentIndex: 1
87+
- documentSelector: *service-selector
8288
equal:
8389
path: spec.type
8490
value: ClusterIP

0 commit comments

Comments
 (0)