Skip to content

Commit

Permalink
fix: Ensure that directories can be unignored. (#16436)
Browse files Browse the repository at this point in the history
This fix makes sure that ignored directories can be unignored using
negated patterns inside of an 'ignores' entry.

Fixes #16414
  • Loading branch information
nzakas committed Oct 18, 2022
1 parent 631cf72 commit a2810bc
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 2 deletions.
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -56,7 +56,7 @@
"bugs": "https://github.com/eslint/eslint/issues/",
"dependencies": {
"@eslint/eslintrc": "^1.3.3",
"@humanwhocodes/config-array": "^0.11.3",
"@humanwhocodes/config-array": "^0.11.5",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
Expand Down
3 changes: 3 additions & 0 deletions tests/fixtures/ignores-subdirectory/eslint.config.js
@@ -0,0 +1,3 @@
module.exports = {
ignores: ["subdir"]
};
Empty file.
30 changes: 29 additions & 1 deletion tests/lib/eslint/flat-eslint.js
Expand Up @@ -1102,7 +1102,7 @@ describe("FlatESLint", () => {
});

// https://github.com/eslint/eslint/issues/16354
it("should skip subdirectory files when ignore pattern matches subdirectory", async () => {
it("should skip subdirectory files when ignore pattern matches deep subdirectory", async () => {
eslint = new FlatESLint({
cwd: getFixturePath("ignores-directory")
});
Expand All @@ -1124,6 +1124,34 @@ describe("FlatESLint", () => {

});

// https://github.com/eslint/eslint/issues/16414
it("should skip subdirectory files when ignore pattern matches subdirectory", async () => {
eslint = new FlatESLint({
cwd: getFixturePath("ignores-subdirectory")
});

await assert.rejects(async () => {
await eslint.lintFiles(["subdir/**/*.js"]);
}, /All files matched by 'subdir\/\*\*\/\*\.js' are ignored\./u);

const results = await eslint.lintFiles(["subdir/subsubdir/a.js"]);

assert.strictEqual(results.length, 1);
assert.strictEqual(results[0].filePath, getFixturePath("ignores-subdirectory/subdir/subsubdir/a.js"));
assert.strictEqual(results[0].warningCount, 1);
assert(results[0].messages[0].message.startsWith("File ignored"), "Should contain file ignored warning");

eslint = new FlatESLint({
cwd: getFixturePath("ignores-subdirectory/subdir")
});

await assert.rejects(async () => {
await eslint.lintFiles(["subsubdir/**/*.js"]);
}, /All files matched by 'subsubdir\/\*\*\/\*\.js' are ignored\./u);


});

// https://github.com/eslint/eslint/issues/16340
it("should lint files even when cwd directory name matches ignores pattern", async () => {
eslint = new FlatESLint({
Expand Down

0 comments on commit a2810bc

Please sign in to comment.