From e16e16a51789a14708a9289382ee6110dd5977c1 Mon Sep 17 00:00:00 2001 From: "Nicholas C. Zakas" Date: Wed, 14 Dec 2022 13:00:31 -0800 Subject: [PATCH] Update default config and tests --- lib/config/default-config.js | 2 +- package.json | 2 +- tests/lib/eslint/flat-eslint.js | 56 ++++++++++++++++++++++++++++++++- 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/lib/config/default-config.js b/lib/config/default-config.js index 44dc48bc9ce..aa0dfb2a522 100644 --- a/lib/config/default-config.js +++ b/lib/config/default-config.js @@ -51,7 +51,7 @@ exports.defaultConfig = [ // default ignores are listed here { ignores: [ - "**/node_modules/**", + "**/node_modules/*", ".git/" ] }, diff --git a/package.json b/package.json index 6fddc975cd5..24462913801 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "bugs": "https://github.com/eslint/eslint/issues/", "dependencies": { "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "0.11.7", + "@humanwhocodes/config-array": "^0.11.8", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", diff --git a/tests/lib/eslint/flat-eslint.js b/tests/lib/eslint/flat-eslint.js index 874e00b1c4f..c4b54f54fea 100644 --- a/tests/lib/eslint/flat-eslint.js +++ b/tests/lib/eslint/flat-eslint.js @@ -4501,13 +4501,14 @@ describe("FlatESLint", () => { }); }); + describe("ignores can unignore '/node_modules/foo'.", () => { const { prepare, cleanup, getPath } = createCustomTeardown({ cwd: `${root}-unignores`, files: { "eslint.config.js": `module.exports = { - ignores: ["!**/node_modules/foo/**"] + ignores: ["!**/node_modules/foo"] };`, "node_modules/foo/index.js": "", "node_modules/foo/.dot.js": "", @@ -4552,6 +4553,59 @@ describe("FlatESLint", () => { }); }); + describe("ignores can unignore '/node_modules/foo/**'.", () => { + + const { prepare, cleanup, getPath } = createCustomTeardown({ + cwd: `${root}-unignores`, + files: { + "eslint.config.js": `module.exports = { + ignores: ["!**/node_modules/foo/**"] + };`, + "node_modules/foo/index.js": "", + "node_modules/foo/.dot.js": "", + "node_modules/bar/index.js": "", + "foo.js": "" + } + }); + + beforeEach(prepare); + afterEach(cleanup); + + it("'isPathIgnored()' should return 'true' for 'node_modules/foo/index.js'.", async () => { + const engine = new FlatESLint({ cwd: getPath() }); + + assert.strictEqual(await engine.isPathIgnored("node_modules/foo/index.js"), false); + }); + + it("'isPathIgnored()' should return 'true' for 'node_modules/foo/.dot.js'.", async () => { + const engine = new FlatESLint({ cwd: getPath() }); + + assert.strictEqual(await engine.isPathIgnored("node_modules/foo/.dot.js"), false); + }); + + it("'isPathIgnored()' should return 'true' for 'node_modules/bar/index.js'.", async () => { + const engine = new FlatESLint({ cwd: getPath() }); + + assert.strictEqual(await engine.isPathIgnored("node_modules/bar/index.js"), true); + }); + + it("'lintFiles()' should verify 'node_modules/foo/index.js'.", async () => { + const engine = new FlatESLint({ cwd: getPath() }); + const result = (await engine.lintFiles("**/*.js")); + + const filePaths = result + .map(r => r.filePath) + .sort(); + + assert.deepStrictEqual(filePaths, [ + path.join(getPath(), "eslint.config.js"), + path.join(getPath(), "foo.js"), + path.join(getPath(), "node_modules/foo/.dot.js"), + path.join(getPath(), "node_modules/foo/index.js") + ]); + }); + }); + describe("ignore pattern can re-ignore files that are unignored by a previous pattern.", () => { const { prepare, cleanup, getPath } = createCustomTeardown({ cwd: `${root}-reignore`,