Skip to content
Snippets Groups Projects
Unverified Commit 2a013b3c authored by Sebastian Poxhofer's avatar Sebastian Poxhofer Committed by GitHub
Browse files

fix(manager/helm-requirements): ensure currentValue is a string (#13979)

parent 3d9cbee2
Branches
Tags
No related merge requests found
// Jest Snapshot v1, https://goo.gl/fbAQLP // 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`] = ` exports[`manager/helm-requirements/extract extractPackageFile() parses simple requirements.yaml correctly 1`] = `
Object { Object {
"datasource": "helm", "datasource": "helm",
......
...@@ -9,6 +9,33 @@ describe('manager/helm-requirements/extract', () => { ...@@ -9,6 +9,33 @@ describe('manager/helm-requirements/extract', () => {
jest.resetAllMocks(); jest.resetAllMocks();
fs.readLocalFile = jest.fn(); 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', () => { it('skips invalid registry urls', () => {
fs.readLocalFile.mockResolvedValueOnce(` fs.readLocalFile.mockResolvedValueOnce(`
apiVersion: v1 apiVersion: v1
......
...@@ -13,7 +13,7 @@ export function extractPackageFile( ...@@ -13,7 +13,7 @@ export function extractPackageFile(
// TODO: fix type // TODO: fix type
let doc: any; let doc: any;
try { try {
doc = load(content, { json: true }); doc = load(content, { json: true }); // TODO #9610
} catch (err) { } catch (err) {
logger.debug({ fileName }, 'Failed to parse helm requirements.yaml'); logger.debug({ fileName }, 'Failed to parse helm requirements.yaml');
return null; return null;
...@@ -23,9 +23,18 @@ export function extractPackageFile( ...@@ -23,9 +23,18 @@ export function extractPackageFile(
return null; return null;
} }
deps = doc.dependencies.map((dep) => { 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 = { const res: PackageDependency = {
depName: dep.name, depName: dep.name,
currentValue: dep.version, currentValue,
}; };
if (!res.depName) { if (!res.depName) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment