Skip to content

Commit 7dee0d4

Browse files
authored
Switch files being passed in to transformer (#599)
Fixes #554
1 parent 251d677 commit 7dee0d4

File tree

6 files changed

+109
-16
lines changed

6 files changed

+109
-16
lines changed

Diff for: src/configuration.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ export class Config {
7676
if (this.configFile) {
7777
debug(`Config file specified, loading it.`);
7878
config = cosmiconfigSync('npmpackagejsonlint', {
79-
transform: transform(this.cwd, this.configBaseDirectory, this.configFile),
79+
transform: transform(this.cwd, this.configBaseDirectory, filePath),
8080
}).load(this.configFile);
8181
} else {
8282
debug(`Config file wasn't specified, searching for config.`);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"extends": "npm-package-json-lint-config-default",
3+
"rules": {
4+
"require-keywords": "off",
5+
"require-private": "error",
6+
"valid-values-private": ["error", [true]]
7+
},
8+
"overrides": [
9+
{
10+
"patterns": ["packages/*/package.json"],
11+
"rules": {
12+
"require-private": "off",
13+
"valid-values-private": "off",
14+
"require-repository-directory": "error"
15+
}
16+
}
17+
]
18+
}
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "npm-package-json-lint-errors",
3+
"version": "0.1.0",
4+
"description": "CLI app for linting package.json files.",
5+
"keywords": [
6+
"lint"
7+
],
8+
"homepage": "https://github.com/tclindner/npm-package-json-lint",
9+
"author": "Thomas Lindner",
10+
"repository": {
11+
"type": "git",
12+
"url": "https://github.com/tclindner/npm-package-json-lint"
13+
},
14+
"devDependencies": {
15+
"mocha": "^2.4.5"
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "npm-package-json-lint-errors",
3+
"version": "0.1.0",
4+
"description": "CLI app for linting package.json files.",
5+
"keywords": [
6+
"lint"
7+
],
8+
"homepage": "https://github.com/tclindner/npm-package-json-lint",
9+
"author": "Thomas Lindner",
10+
"repository": {
11+
"type": "git",
12+
"url": "https://github.com/tclindner/npm-package-json-lint"
13+
},
14+
"devDependencies": {
15+
"mocha": "^2.4.5"
16+
}
17+
}

Diff for: test/integration/cli.test.js

+40
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,46 @@ Totals
313313
});
314314
});
315315

316+
describe('when the cli is run using a config file with overrides and nested packages', () => {
317+
test('run for main pkg. results and totals will be output', () => {
318+
const cli = spawnSync('../../../dist/cli.js', ['-c', '.npmpackagejsonlintrc.json', './package.json'], {
319+
env,
320+
cwd: './test/fixtures/config-file-with-overrides',
321+
});
322+
const expected = `
323+
./package.json
324+
${figures.cross} require-private - node: private - private is required
325+
1 error
326+
0 warnings
327+
`;
328+
329+
expect(cli.stdout.toString()).toStrictEqual(expected);
330+
expect(cli.stderr.toString()).toStrictEqual('');
331+
expect(cli.status).toStrictEqual(twoLintErrorsDetected);
332+
});
333+
334+
test('run for sub pkg. results and totals will be output', () => {
335+
const cli = spawnSync(
336+
'../../../dist/cli.js',
337+
['-c', '.npmpackagejsonlintrc.json', './packages/my-package/package.json'],
338+
{
339+
env,
340+
cwd: './test/fixtures/config-file-with-overrides',
341+
}
342+
);
343+
const expected = `
344+
./packages/my-package/package.json
345+
${figures.cross} require-repository-directory - node: repository - repository object missing directory property
346+
1 error
347+
0 warnings
348+
`;
349+
350+
expect(cli.stdout.toString()).toStrictEqual(expected);
351+
expect(cli.stderr.toString()).toStrictEqual('');
352+
expect(cli.status).toStrictEqual(twoLintErrorsDetected);
353+
});
354+
});
355+
316356
describe('when the cli is run against a monorepo with overrides', () => {
317357
test('each file results and totals will be output', () => {
318358
const cli = spawnSync('../../../dist/cli.js', [`**/package.json`], {

Diff for: test/unit/utils/getFileList.test.ts

+16-15
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@ describe('getFileList Unit Tests', () => {
88

99
const results = getFileList(patterns, cwd);
1010

11-
expect(results[0]).toContain('/test/fixtures/configJavaScriptFile/package.json');
12-
expect(results[1]).toContain('/test/fixtures/errors/package.json');
13-
expect(results[2]).toContain('/test/fixtures/errorsAndWarnings/package.json');
14-
expect(results[3]).toContain('/test/fixtures/hierarchyWithoutRoot/package.json');
15-
expect(results[4]).toContain('/test/fixtures/ignorePath/package.json');
16-
expect(results[5]).toContain('/test/fixtures/invalidConfig/package.json');
17-
expect(results[6]).toContain('/test/fixtures/monorepo/package.json');
18-
expect(results[7]).toContain('/test/fixtures/npmPackageJsonLintIgnore/package.json');
19-
expect(results[8]).toContain('/test/fixtures/overrides/package.json');
20-
expect(results[9]).toContain('/test/fixtures/packageJsonProperty/package.json');
21-
expect(results[10]).toContain('/test/fixtures/valid/package.json');
22-
expect(results[11]).toContain('/test/fixtures/warnings/package.json');
23-
expect(results[12]).toContain('/test/fixtures/hierarchyWithoutRoot/subdirectory/package.json');
24-
expect(results[13]).toContain('/test/fixtures/ignorePath/ignoredDirectory/package.json');
25-
expect(results[14]).toContain('/test/fixtures/npmPackageJsonLintIgnore/ignoredDirectory/package.json');
11+
expect(results[0]).toContain('/test/fixtures/config-file-with-overrides/package.json');
12+
expect(results[1]).toContain('/test/fixtures/configJavaScriptFile/package.json');
13+
expect(results[2]).toContain('/test/fixtures/errors/package.json');
14+
expect(results[3]).toContain('/test/fixtures/errorsAndWarnings/package.json');
15+
expect(results[4]).toContain('/test/fixtures/hierarchyWithoutRoot/package.json');
16+
expect(results[5]).toContain('/test/fixtures/ignorePath/package.json');
17+
expect(results[6]).toContain('/test/fixtures/invalidConfig/package.json');
18+
expect(results[7]).toContain('/test/fixtures/monorepo/package.json');
19+
expect(results[8]).toContain('/test/fixtures/npmPackageJsonLintIgnore/package.json');
20+
expect(results[9]).toContain('/test/fixtures/overrides/package.json');
21+
expect(results[10]).toContain('/test/fixtures/packageJsonProperty/package.json');
22+
expect(results[11]).toContain('/test/fixtures/valid/package.json');
23+
expect(results[12]).toContain('/test/fixtures/warnings/package.json');
24+
expect(results[13]).toContain('/test/fixtures/hierarchyWithoutRoot/subdirectory/package.json');
25+
expect(results[14]).toContain('/test/fixtures/ignorePath/ignoredDirectory/package.json');
26+
expect(results[15]).toContain('/test/fixtures/npmPackageJsonLintIgnore/ignoredDirectory/package.json');
2627
});
2728
});

0 commit comments

Comments
 (0)