mirror of
https://github.com/renovatebot/renovate.git
synced 2025-01-11 22:46:27 +00:00
fix(npm): fix detecting logic of npmClient (#4130)
fix(npm): fix detecting logic of npmClient
This commit is contained in:
parent
689f86aa52
commit
6333646e6d
3 changed files with 224 additions and 1 deletions
|
@ -131,7 +131,8 @@ async function extractPackageFile(content, fileName, config) {
|
||||||
if (lernaJson) {
|
if (lernaJson) {
|
||||||
lernaDir = path.dirname(fileName);
|
lernaDir = path.dirname(fileName);
|
||||||
lernaPackages = lernaJson.packages;
|
lernaPackages = lernaJson.packages;
|
||||||
lernaClient = lernaJson.npmClient || lockFiles.yarnLock ? 'yarn' : 'npm';
|
lernaClient =
|
||||||
|
lernaJson.npmClient === 'yarn' || lockFiles.yarnLock ? 'yarn' : 'npm';
|
||||||
}
|
}
|
||||||
|
|
||||||
const depTypes = {
|
const depTypes = {
|
||||||
|
|
|
@ -337,6 +337,200 @@ Object {
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`manager/npm/extract .extractPackageFile() finds "npmClient":"npm" in lerna.json 1`] = `
|
||||||
|
Object {
|
||||||
|
"deps": Array [
|
||||||
|
Object {
|
||||||
|
"currentValue": "6.5.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "autoprefixer",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "~1.6.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "bower",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "13.1.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "browserify",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "0.9.2",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "browserify-css",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "=0.22.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "cheerio",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.21.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "config",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"depName": "enabled",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
"skipReason": "invalid-value",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "^1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular-touch",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular-sanitize",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "4.0.0-beta.1",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "@angular/core",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"ignoreNpmrcFile": undefined,
|
||||||
|
"lernaClient": "npm",
|
||||||
|
"lernaDir": ".",
|
||||||
|
"lernaPackages": undefined,
|
||||||
|
"npmLock": undefined,
|
||||||
|
"npmrc": undefined,
|
||||||
|
"packageJsonName": "renovate",
|
||||||
|
"packageJsonType": "app",
|
||||||
|
"packageJsonVersion": "1.0.0",
|
||||||
|
"pnpmShrinkwrap": undefined,
|
||||||
|
"skipInstalls": true,
|
||||||
|
"yarnLock": undefined,
|
||||||
|
"yarnWorkspacesPackages": undefined,
|
||||||
|
"yarnrc": undefined,
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`manager/npm/extract .extractPackageFile() finds "npmClient":"yarn" in lerna.json 1`] = `
|
||||||
|
Object {
|
||||||
|
"deps": Array [
|
||||||
|
Object {
|
||||||
|
"currentValue": "6.5.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "autoprefixer",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "~1.6.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "bower",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "13.1.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "browserify",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "0.9.2",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "browserify-css",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "=0.22.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "cheerio",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.21.0",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "config",
|
||||||
|
"depType": "dependencies",
|
||||||
|
"prettyDepType": "dependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"depName": "enabled",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
"skipReason": "invalid-value",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "^1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular-touch",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "1.5.8",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "angular-sanitize",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
Object {
|
||||||
|
"currentValue": "4.0.0-beta.1",
|
||||||
|
"datasource": "npm",
|
||||||
|
"depName": "@angular/core",
|
||||||
|
"depType": "devDependencies",
|
||||||
|
"prettyDepType": "devDependency",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"ignoreNpmrcFile": undefined,
|
||||||
|
"lernaClient": "yarn",
|
||||||
|
"lernaDir": ".",
|
||||||
|
"lernaPackages": undefined,
|
||||||
|
"npmLock": undefined,
|
||||||
|
"npmrc": undefined,
|
||||||
|
"packageJsonName": "renovate",
|
||||||
|
"packageJsonType": "app",
|
||||||
|
"packageJsonVersion": "1.0.0",
|
||||||
|
"pnpmShrinkwrap": undefined,
|
||||||
|
"skipInstalls": true,
|
||||||
|
"yarnLock": undefined,
|
||||||
|
"yarnWorkspacesPackages": undefined,
|
||||||
|
"yarnrc": undefined,
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`manager/npm/extract .extractPackageFile() finds a lock file 1`] = `
|
exports[`manager/npm/extract .extractPackageFile() finds a lock file 1`] = `
|
||||||
Object {
|
Object {
|
||||||
"deps": Array [
|
"deps": Array [
|
||||||
|
|
|
@ -137,6 +137,34 @@ describe('manager/npm/extract', () => {
|
||||||
);
|
);
|
||||||
expect(res).toMatchSnapshot();
|
expect(res).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
it('finds "npmClient":"npm" in lerna.json', async () => {
|
||||||
|
platform.getFile = jest.fn(fileName => {
|
||||||
|
if (fileName === 'lerna.json') {
|
||||||
|
return '{ "npmClient": "npm" }';
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
const res = await npmExtract.extractPackageFile(
|
||||||
|
input01Content,
|
||||||
|
'package.json',
|
||||||
|
defaultConfig
|
||||||
|
);
|
||||||
|
expect(res).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
it('finds "npmClient":"yarn" in lerna.json', async () => {
|
||||||
|
platform.getFile = jest.fn(fileName => {
|
||||||
|
if (fileName === 'lerna.json') {
|
||||||
|
return '{ "npmClient": "yarn" }';
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
const res = await npmExtract.extractPackageFile(
|
||||||
|
input01Content,
|
||||||
|
'package.json',
|
||||||
|
defaultConfig
|
||||||
|
);
|
||||||
|
expect(res).toMatchSnapshot();
|
||||||
|
});
|
||||||
it('finds complex yarn workspaces', async () => {
|
it('finds complex yarn workspaces', async () => {
|
||||||
platform.getFile = jest.fn(fileName => {
|
platform.getFile = jest.fn(fileName => {
|
||||||
if (fileName === 'lerna.json') {
|
if (fileName === 'lerna.json') {
|
||||||
|
|
Loading…
Reference in a new issue