From a6f90f26698d21db64f2732cb114566a4d3d1d92 Mon Sep 17 00:00:00 2001 From: Hans Knecht Date: Thu, 28 Mar 2024 11:59:10 +0100 Subject: [PATCH] test(vendir): refactor fixtures (#28165) --- .../vendir/__fixtures__/alias-contents.yaml | 12 ---- ...n-helmchart.yaml => invalid-contents.yaml} | 2 +- .../__fixtures__/multiple-contents.yaml | 17 ----- .../vendir/__fixtures__/oci-contents.yaml | 12 ---- .../vendir/__fixtures__/one-contents.yaml | 11 --- .../vendir/__fixtures__/valid-contents.yaml | 33 +++++++++ lib/modules/manager/vendir/extract.spec.ts | 71 ++++++------------- 7 files changed, 55 insertions(+), 103 deletions(-) delete mode 100644 lib/modules/manager/vendir/__fixtures__/alias-contents.yaml rename lib/modules/manager/vendir/__fixtures__/{non-helmchart.yaml => invalid-contents.yaml} (96%) delete mode 100644 lib/modules/manager/vendir/__fixtures__/multiple-contents.yaml delete mode 100644 lib/modules/manager/vendir/__fixtures__/oci-contents.yaml delete mode 100644 lib/modules/manager/vendir/__fixtures__/one-contents.yaml create mode 100644 lib/modules/manager/vendir/__fixtures__/valid-contents.yaml diff --git a/lib/modules/manager/vendir/__fixtures__/alias-contents.yaml b/lib/modules/manager/vendir/__fixtures__/alias-contents.yaml deleted file mode 100644 index 1090312b61a6de..00000000000000 --- a/lib/modules/manager/vendir/__fixtures__/alias-contents.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: vendir.k14s.io/v1alpha1 -kind: Config -directories: -- path: vendor - contents: - - path: custom-repo-custom-version - helmChart: - name: oci - version: "7.10.1" - repository: - url: oci://test diff --git a/lib/modules/manager/vendir/__fixtures__/non-helmchart.yaml b/lib/modules/manager/vendir/__fixtures__/invalid-contents.yaml similarity index 96% rename from lib/modules/manager/vendir/__fixtures__/non-helmchart.yaml rename to lib/modules/manager/vendir/__fixtures__/invalid-contents.yaml index 738c9257cad17f..fe23043bf1b11a 100644 --- a/lib/modules/manager/vendir/__fixtures__/non-helmchart.yaml +++ b/lib/modules/manager/vendir/__fixtures__/invalid-contents.yaml @@ -4,7 +4,7 @@ directories: - path: vendor contents: - path: github.com/cloudfoundry/cf-k8s-networking - git: + invalid: # http or ssh urls are supported (required) url: https://github.com/cloudfoundry/cf-k8s-networking # branch, tag, commit; origin is the name of the remote (required) diff --git a/lib/modules/manager/vendir/__fixtures__/multiple-contents.yaml b/lib/modules/manager/vendir/__fixtures__/multiple-contents.yaml deleted file mode 100644 index 05ecd9fb0e2963..00000000000000 --- a/lib/modules/manager/vendir/__fixtures__/multiple-contents.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: vendir.k14s.io/v1alpha1 -kind: Config -directories: -- path: vendor - contents: - - path: custom-repo-custom-version - helmChart: - name: contour - version: "7.10.1" - repository: - url: https://charts.bitnami.com/bitnami - - path: thing - helmChart: - name: contour - version: "7.10.1" - repository: - url: https://charts.bitnami.com/bitnami diff --git a/lib/modules/manager/vendir/__fixtures__/oci-contents.yaml b/lib/modules/manager/vendir/__fixtures__/oci-contents.yaml deleted file mode 100644 index d34ad87fb52c64..00000000000000 --- a/lib/modules/manager/vendir/__fixtures__/oci-contents.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: vendir.k14s.io/v1alpha1 -kind: Config -directories: -- path: vendor - contents: - - path: custom-repo-custom-version - helmChart: - name: contour - version: "7.10.1" - repository: - url: oci://charts.bitnami.com/bitnami diff --git a/lib/modules/manager/vendir/__fixtures__/one-contents.yaml b/lib/modules/manager/vendir/__fixtures__/one-contents.yaml deleted file mode 100644 index db27125f6aae48..00000000000000 --- a/lib/modules/manager/vendir/__fixtures__/one-contents.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: vendir.k14s.io/v1alpha1 -kind: Config -directories: -- path: vendor - contents: - - path: custom-repo-custom-version - helmChart: - name: contour - version: "7.10.1" - repository: - url: https://charts.bitnami.com/bitnami diff --git a/lib/modules/manager/vendir/__fixtures__/valid-contents.yaml b/lib/modules/manager/vendir/__fixtures__/valid-contents.yaml new file mode 100644 index 00000000000000..04334c59af9d41 --- /dev/null +++ b/lib/modules/manager/vendir/__fixtures__/valid-contents.yaml @@ -0,0 +1,33 @@ +apiVersion: vendir.k14s.io/v1alpha1 +kind: Config +directories: +- path: vendor + contents: + # Normal Helm Chart + - path: custom-repo-custom-version + helmChart: + name: valid-helmchart-1 + version: "7.10.1" + repository: + url: https://charts.bitnami.com/bitnami + # Normal Helm Chart 2 for handling lists + - path: thing + helmChart: + name: valid-helmchart-2 + version: "7.10.1" + repository: + url: https://charts.bitnami.com/bitnami + # OCI Helm Chart + - path: custom-repo-custom-version + helmChart: + name: oci-chart + version: "7.10.1" + repository: + url: oci://charts.bitnami.com/bitnami + # Aliased OCI Helm Chart + - path: custom-repo-custom-version + helmChart: + name: aliased-oci-chart + version: "7.10.1" + repository: + url: oci://test diff --git a/lib/modules/manager/vendir/extract.spec.ts b/lib/modules/manager/vendir/extract.spec.ts index a4d612c47322f3..e6e3c36b2bf1c0 100644 --- a/lib/modules/manager/vendir/extract.spec.ts +++ b/lib/modules/manager/vendir/extract.spec.ts @@ -2,11 +2,8 @@ import { codeBlock } from 'common-tags'; import { Fixtures } from '../../../../test/fixtures'; import { extractPackageFile } from '.'; -const oneContents = Fixtures.get('one-contents.yaml'); -const ociContents = Fixtures.get('oci-contents.yaml'); -const aliasContents = Fixtures.get('alias-contents.yaml'); -const multipleContents = Fixtures.get('multiple-contents.yaml'); -const nonHelmChartContents = Fixtures.get('non-helmchart.yaml'); +const validContents = Fixtures.get('valid-contents.yaml'); +const invalidContents = Fixtures.get('invalid-contents.yaml'); describe('modules/manager/vendir/extract', () => { describe('extractPackageFile()', () => { @@ -31,74 +28,48 @@ describe('modules/manager/vendir/extract', () => { }); it('returns null for nonHelmChart key', () => { - const result = extractPackageFile(nonHelmChartContents, 'vendir.yml', {}); + const result = extractPackageFile(invalidContents, 'vendir.yml', {}); expect(result).toBeNull(); }); - it('single chart - extracts helm-chart from vendir.yml correctly', () => { - const result = extractPackageFile(oneContents, 'vendir.yml', {}); + it('multiple charts - extracts helm-chart from vendir.yml correctly', () => { + const result = extractPackageFile(validContents, 'vendir.yml', { + registryAliases: { + test: 'quay.example.com/organization', + }, + }); expect(result).toMatchObject({ deps: [ { currentValue: '7.10.1', - depName: 'contour', + depName: 'valid-helmchart-1', datasource: 'helm', + depType: 'HelmChart', registryUrls: ['https://charts.bitnami.com/bitnami'], }, - ], - }); - }); - - it('single chart - extracts oci helm-chart from vendir.yml correctly', () => { - const result = extractPackageFile(ociContents, 'vendir.yml', {}); - expect(result).toMatchObject({ - deps: [ - { - currentValue: '7.10.1', - depName: 'contour', - packageName: 'charts.bitnami.com/bitnami/contour', - datasource: 'docker', - }, - ], - }); - }); - - it('multiple charts - extracts helm-chart from vendir.yml correctly', () => { - const result = extractPackageFile(multipleContents, 'vendir.yml', {}); - expect(result).toMatchObject({ - deps: [ { currentValue: '7.10.1', - depName: 'contour', + depName: 'valid-helmchart-2', datasource: 'helm', + depType: 'HelmChart', registryUrls: ['https://charts.bitnami.com/bitnami'], }, { + currentDigest: undefined, currentValue: '7.10.1', - depName: 'contour', - datasource: 'helm', - registryUrls: ['https://charts.bitnami.com/bitnami'], + depName: 'oci-chart', + datasource: 'docker', + depType: 'HelmChart', + packageName: 'charts.bitnami.com/bitnami/oci-chart', + pinDigests: false, }, - ], - }); - }); - - it('resolves aliased registry urls', () => { - const aliasResult = extractPackageFile(aliasContents, 'vendir.yml', { - registryAliases: { - test: 'quay.example.com/organization', - }, - }); - - expect(aliasResult).toMatchObject({ - deps: [ { currentDigest: undefined, currentValue: '7.10.1', - depName: 'oci', + depName: 'aliased-oci-chart', datasource: 'docker', depType: 'HelmChart', - packageName: 'quay.example.com/organization/oci', + packageName: 'quay.example.com/organization/aliased-oci-chart', pinDigests: false, }, ],