Skip to content

Commit

Permalink
add unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
maratsal committed Sep 13, 2023
1 parent 566b90e commit 3d5987e
Show file tree
Hide file tree
Showing 5 changed files with 273 additions and 0 deletions.
9 changes: 9 additions & 0 deletions charts/registry-scanner/tests/configmap_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,12 @@ tests:
- matchRegex:
path: data['config.yaml']
pattern: allowListMemberAccountIDs:\n\s*- 123456789

- it: registry url if registry type gar
set:
config:
registryType: gar
asserts:
- notMatchRegex:
path: data['config.yaml']
pattern: "url:.*$"
127 changes: 127 additions & 0 deletions charts/registry-scanner/tests/cronjob_gar_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
suite: Registry Scanner - cronjob GAR
templates:
- templates/cronjob.yaml
values:
- values-gar.yaml
tests:
- it: Check currency policy is set to Forbid
asserts:
- equal:
path: spec.concurrencyPolicy
value: Forbid
- it: sets extraEnvVars on job
set:
extraEnvVars:
- name: FOO
value: bar
asserts:
- contains:
path: spec.jobTemplate.spec.template.spec.containers[0].env
content:
name: FOO
value: bar
- it: sets the service account for the jobs
asserts:
- equal:
path: spec.jobTemplate.spec.template.spec.serviceAccountName
value: RELEASE-NAME-registry-scanner
- it: sets the backoff limit to 0
asserts:
- equal:
path: spec.jobTemplate.spec.backoffLimit
value: 0

- it: Check apiVersion for Kube <1.21
capabilities:
majorVersion: 1
minorVersion: 20
asserts:
- equal:
path: apiVersion
value: batch/v1beta1

- it: Check apiVersion for Kube >=1.21
capabilities:
majorVersion: 1
minorVersion: 21
asserts:
- equal:
path: apiVersion
value: batch/v1

- it: Check apiVersion for Kube <1.21 with '+' character in minor version
capabilities:
majorVersion: 1
minorVersion: "20+"
asserts:
- equal:
path: apiVersion
value: batch/v1beta1

- it: Check apiVersion for Kube >=1.21 with '+' character in minor version
capabilities:
majorVersion: 1
minorVersion: "21+"
asserts:
- equal:
path: apiVersion
value: batch/v1

- it: sets default labels
asserts:
- equal:
path: metadata.labels['app.kubernetes.io/component']
value: registry-scanner-orchestrator
- equal:
path: spec.jobTemplate.spec.template.metadata.labels['app.kubernetes.io/component']
value: registry-scanner-orchestrator

- it: ttlSecondsAfterFinished default value is set
asserts:
- equal:
path: spec.jobTemplate.spec.ttlSecondsAfterFinished
value: 3600
- it: ttlSecondsAfterFinished is set
set:
config.scan.orchestrator.ttlSecondsAfterFinished: '0'
asserts:
- equal:
path: spec.jobTemplate.spec.ttlSecondsAfterFinished
value: 0
- it: ttlSecondsAfterFinished is unset
set:
config.scan.orchestrator.ttlSecondsAfterFinished: ''
asserts:
- isNull:
path: spec.jobTemplate.spec.ttlSecondsAfterFinished

- it: multiple cronjobs created if registry type gar and config gar regions are set
capabilities:
majorVersion: 1
minorVersion: "21+"
set:
config:
gar:
regions:
- us-east1
- us-central
asserts:
- containsDocument:
kind: CronJob
apiVersion: batch/v1
name: RELEASE-NAME-registry-scanner-gar-us-east1
- containsDocument:
kind: CronJob
apiVersion: batch/v1
name: RELEASE-NAME-registry-scanner-gar-us-central
- hasDocuments:
count: 2
- matchRegex:
path: spec.jobTemplate.spec.template.spec.containers[0].args[1]
pattern: -docker.pkg.dev

- it: command arguments are properly set if registry type gar and config gar regions are set
asserts:
- matchRegex:
path: spec.jobTemplate.spec.template.spec.containers[0].args[1]
pattern: us-east1-docker.pkg.dev
91 changes: 91 additions & 0 deletions charts/registry-scanner/tests/job_gar_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
suite: Registry Scanner - scanOnStart Job GAR
templates:
- templates/job.yaml
values:
- values-gar.yaml
tests:
- it: checks job manifest is available when scanOnStart is enabled
asserts:
- containsDocument:
kind: Job
apiVersion: batch/v1
- it: checks job name is same as scanOnStart.jobName
set:
scanOnStart:
jobName: foo
asserts:
- equal:
path: metadata.name
value: foo-gar-us-east1
- it: sets extraEnvVars on job
set:
extraEnvVars:
- name: FOO
value: bar
asserts:
- contains:
path: spec.template.spec.containers[0].env
content:
name: FOO
value: bar
- it: sets default labels
asserts:
- equal:
path: metadata.labels['app.kubernetes.io/component']
value: registry-scanner-orchestrator
- equal:
path: spec.template.metadata.labels['app.kubernetes.io/component']
value: registry-scanner-orchestrator
- it: ttlSecondsAfterFinished default value is set
asserts:
- equal:
path: spec.ttlSecondsAfterFinished
value: 3600
- it: ttlSecondsAfterFinished is set
set:
config.scan.orchestrator.ttlSecondsAfterFinished: '0'
asserts:
- equal:
path: spec.ttlSecondsAfterFinished
value: 0
- it: ttlSecondsAfterFinished is unset
set:
config.scan.orchestrator.ttlSecondsAfterFinished: ''
asserts:
- isNull:
path: spec.ttlSecondsAfterFinished

- it: multiple jobs created if registry type gar and config gar regions are set
set:
config:
registryType: gar
gar:
regions:
- us-east1
- us-central
asserts:
- containsDocument:
kind: Job
apiVersion: batch/v1
name: registry-scanner-start-test-gar-us-east1
- containsDocument:
kind: Job
apiVersion: batch/v1
name: registry-scanner-start-test-gar-us-central
- hasDocuments:
count: 2
- matchRegex:
path: spec.template.spec.containers[0].args[1]
pattern: -docker.pkg.dev

- it: command arguments are properly set if registry type gar and config gar regions are set
set:
config:
registryType: gar
gar:
regions:
- us-east1
asserts:
- matchRegex:
path: spec.template.spec.containers[0].args[1]
pattern: us-east1-docker.pkg.dev
39 changes: 39 additions & 0 deletions charts/registry-scanner/tests/job_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,42 @@ tests:
asserts:
- isNull:
path: spec.ttlSecondsAfterFinished

- it: multiple jobs created if registry type gar and config gar regions are set
set:
scanOnStart:
enabled: true
config:
registryType: gar
gar:
regions:
- us-east1
- us-central
asserts:
- containsDocument:
kind: Job
apiVersion: batch/v1
name: registry-scanner-start-test-gar-us-east1
- containsDocument:
kind: Job
apiVersion: batch/v1
name: registry-scanner-start-test-gar-us-central
- hasDocuments:
count: 2
- matchRegex:
path: spec.template.spec.containers[0].args[1]
pattern: -docker.pkg.dev

- it: command arguments are properly set if registry type gar and config gar regions are set
set:
scanOnStart:
enabled: true
config:
registryType: gar
gar:
regions:
- us-east1
asserts:
- matchRegex:
path: spec.template.spec.containers[0].args[1]
pattern: us-east1-docker.pkg.dev
7 changes: 7 additions & 0 deletions charts/registry-scanner/tests/values-gar.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
config:
registryType: gar
gar:
regions:
- us-east1
scanOnStart:
enabled: true

0 comments on commit 3d5987e

Please sign in to comment.