From 35916ad9bfc07dab63361721df1bd7f21e43e094 Mon Sep 17 00:00:00 2001 From: "Nicholas C. Zakas" Date: Thu, 13 Oct 2022 12:42:35 -0700 Subject: [PATCH] fix: Ensure unignore and reignore work correctly in flat config. (#16422) Upgrade @humanwhocodes/config-array to fix several issues. Fixes #16416 Fixes #16415 --- package.json | 2 +- tests/lib/eslint/flat-eslint.js | 42 ++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index fa25f6f0e53..264df28356d 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.2", + "@humanwhocodes/config-array": "^0.11.3", "@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 edc822c33a8..150bdd584ad 100644 --- a/tests/lib/eslint/flat-eslint.js +++ b/tests/lib/eslint/flat-eslint.js @@ -1101,7 +1101,6 @@ describe("FlatESLint", () => { assert.strictEqual(results[0].filePath, getFixturePath("ignores-relative/subdir/a.js")); }); - // https://github.com/eslint/eslint/issues/16354 it("should skip subdirectory files when ignore pattern matches subdirectory", async () => { eslint = new FlatESLint({ @@ -1140,6 +1139,47 @@ describe("FlatESLint", () => { }); + // https://github.com/eslint/eslint/issues/16416 + it("should allow reignoring of previously ignored files", async () => { + eslint = new FlatESLint({ + cwd: getFixturePath("ignores-relative"), + overrideConfigFile: true, + overrideConfig: { + ignores: [ + "*.js", + "!a*.js", + "a.js" + ] + } + }); + const results = await eslint.lintFiles(["a.js"]); + + assert.strictEqual(results.length, 1); + assert.strictEqual(results[0].errorCount, 0); + assert.strictEqual(results[0].warningCount, 1); + assert.strictEqual(results[0].filePath, getFixturePath("ignores-relative/a.js")); + }); + + // https://github.com/eslint/eslint/issues/16415 + it("should allow directories to be unignored", async () => { + eslint = new FlatESLint({ + cwd: getFixturePath("ignores-directory"), + overrideConfigFile: true, + overrideConfig: { + ignores: [ + "subdir/*", + "!subdir/subsubdir" + ] + } + }); + const results = await eslint.lintFiles(["subdir/**/*.js"]); + + assert.strictEqual(results.length, 1); + assert.strictEqual(results[0].errorCount, 0); + assert.strictEqual(results[0].warningCount, 0); + assert.strictEqual(results[0].filePath, getFixturePath("ignores-directory/subdir/subsubdir/a.js")); + }); + });