diff --git a/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap b/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap index 81ba986a99dba18902985cde0ccab0c29e297538..1879dfa9a8ea974171b3ac6809261f150663dbf6 100644 --- a/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/helm-requirements/__snapshots__/extract.spec.ts.snap @@ -1,5 +1,21 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`manager/helm-requirements/extract extractPackageFile() ensure that currentValue is string 1`] = ` +Object { + "datasource": "helm", + "deps": Array [ + Object { + "currentValue": "0.9", + "depName": "redis", + "registryUrls": Array [ + "@placeholder", + ], + "skipReason": "placeholder-url", + }, + ], +} +`; + exports[`manager/helm-requirements/extract extractPackageFile() parses simple requirements.yaml correctly 1`] = ` Object { "datasource": "helm", diff --git a/lib/manager/helm-requirements/extract.spec.ts b/lib/manager/helm-requirements/extract.spec.ts index 45f25a297a1b3297aa710e20949f55396df8039c..ec33ca38640e7884074d0bab260dddb6d5dc717a 100644 --- a/lib/manager/helm-requirements/extract.spec.ts +++ b/lib/manager/helm-requirements/extract.spec.ts @@ -9,6 +9,33 @@ describe('manager/helm-requirements/extract', () => { jest.resetAllMocks(); fs.readLocalFile = jest.fn(); }); + + it('ensure that currentValue is string', () => { + fs.readLocalFile.mockResolvedValueOnce(` + apiVersion: v1 + appVersion: "1.0" + description: A Helm chart for Kubernetes + name: example + version: 0.1.0 + `); + const content = ` + dependencies: + - name: redis + version: 0.9 + repository: '@placeholder' + `; + const fileName = 'requirements.yaml'; + const result = extractPackageFile(content, fileName, { + aliases: { + stable: 'https://charts.helm.sh/stable/', + }, + }); + expect(result).not.toBeNull(); + expect(typeof result.deps[0]?.currentValue).toBe('string'); + expect(result).toMatchSnapshot(); + expect(result.deps.every((dep) => dep.skipReason)).toBe(true); + }); + it('skips invalid registry urls', () => { fs.readLocalFile.mockResolvedValueOnce(` apiVersion: v1 diff --git a/lib/manager/helm-requirements/extract.ts b/lib/manager/helm-requirements/extract.ts index bd4f39a748355880c999dd78b0b6a07f1d41bf71..83fb67f4a5e62c5945a25e79c167349023cda71a 100644 --- a/lib/manager/helm-requirements/extract.ts +++ b/lib/manager/helm-requirements/extract.ts @@ -13,7 +13,7 @@ export function extractPackageFile( // TODO: fix type let doc: any; try { - doc = load(content, { json: true }); + doc = load(content, { json: true }); // TODO #9610 } catch (err) { logger.debug({ fileName }, 'Failed to parse helm requirements.yaml'); return null; @@ -23,9 +23,18 @@ export function extractPackageFile( return null; } deps = doc.dependencies.map((dep) => { + let currentValue; // Remove when #9610 has been implemented + switch (typeof dep.version) { + case 'number': + currentValue = String(dep.version); + break; + case 'string': + currentValue = dep.version; + } + const res: PackageDependency = { depName: dep.name, - currentValue: dep.version, + currentValue, }; if (!res.depName) {