Skip to content

Commit c4fad17

Browse files
fix: Correct ignore message for "node_modules" subfolders (#17217)
* fix: Correct ignore message for "node_modules" subfolders * Use `path.sep` as a separator Co-authored-by: Milos Djermanovic <[email protected]> --------- Co-authored-by: Milos Djermanovic <[email protected]>
1 parent 5b68d51 commit c4fad17

3 files changed

Lines changed: 41 additions & 2 deletions

File tree

lib/eslint/eslint-helpers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ function isErrorMessage(message) {
591591
*/
592592
function createIgnoreResult(filePath, baseDir) {
593593
let message;
594-
const isInNodeModules = baseDir && path.relative(baseDir, filePath).startsWith("node_modules");
594+
const isInNodeModules = baseDir && path.dirname(path.relative(baseDir, filePath)).split(path.sep).includes("node_modules");
595595

596596
if (isInNodeModules) {
597597
message = "File ignored by default because it is located under the node_modules directory. Use ignore pattern \"!**/node_modules/\" to override.";
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// not implemented

tests/lib/eslint/flat-eslint.js

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1191,7 +1191,7 @@ describe("FlatESLint", () => {
11911191

11921192
describe("Ignoring Files", () => {
11931193

1194-
it("should report on all files passed explicitly, even if ignored by default", async () => {
1194+
it("should report on a file in the node_modules folder passed explicitly, even if ignored by default", async () => {
11951195
eslint = new FlatESLint({
11961196
cwd: getFixturePath("cli-engine")
11971197
});
@@ -1204,6 +1204,44 @@ describe("FlatESLint", () => {
12041204
assert.strictEqual(results[0].fatalErrorCount, 0);
12051205
assert.strictEqual(results[0].fixableErrorCount, 0);
12061206
assert.strictEqual(results[0].fixableWarningCount, 0);
1207+
assert.strictEqual(results[0].messages[0].severity, 1);
1208+
assert.strictEqual(results[0].messages[0].message, expectedMsg);
1209+
assert.strictEqual(results[0].suppressedMessages.length, 0);
1210+
});
1211+
1212+
it("should report on a file in a node_modules subfolder passed explicitly, even if ignored by default", async () => {
1213+
eslint = new FlatESLint({
1214+
cwd: getFixturePath("cli-engine")
1215+
});
1216+
const results = await eslint.lintFiles(["nested_node_modules/subdir/node_modules/text.js"]);
1217+
const expectedMsg = "File ignored by default because it is located under the node_modules directory. Use ignore pattern \"!**/node_modules/\" to override.";
1218+
1219+
assert.strictEqual(results.length, 1);
1220+
assert.strictEqual(results[0].errorCount, 0);
1221+
assert.strictEqual(results[0].warningCount, 1);
1222+
assert.strictEqual(results[0].fatalErrorCount, 0);
1223+
assert.strictEqual(results[0].fixableErrorCount, 0);
1224+
assert.strictEqual(results[0].fixableWarningCount, 0);
1225+
assert.strictEqual(results[0].messages[0].severity, 1);
1226+
assert.strictEqual(results[0].messages[0].message, expectedMsg);
1227+
assert.strictEqual(results[0].suppressedMessages.length, 0);
1228+
});
1229+
1230+
it("should report on an ignored file with \"node_modules\" in its name", async () => {
1231+
eslint = new FlatESLint({
1232+
cwd: getFixturePath("cli-engine"),
1233+
ignorePatterns: ["*.js"]
1234+
});
1235+
const results = await eslint.lintFiles(["node_modules_cleaner.js"]);
1236+
const expectedMsg = "File ignored because of a matching ignore pattern. Use \"--no-ignore\" to override.";
1237+
1238+
assert.strictEqual(results.length, 1);
1239+
assert.strictEqual(results[0].errorCount, 0);
1240+
assert.strictEqual(results[0].warningCount, 1);
1241+
assert.strictEqual(results[0].fatalErrorCount, 0);
1242+
assert.strictEqual(results[0].fixableErrorCount, 0);
1243+
assert.strictEqual(results[0].fixableWarningCount, 0);
1244+
assert.strictEqual(results[0].messages[0].severity, 1);
12071245
assert.strictEqual(results[0].messages[0].message, expectedMsg);
12081246
assert.strictEqual(results[0].suppressedMessages.length, 0);
12091247
});

0 commit comments

Comments
 (0)