severity: 2,
message: "Parsing error: Unexpected token is",
line: 1,
- column: 19
+ column: 19,
+ nodeType: null
}
],
suppressedMessages: [],
severity: 2,
message: "Parsing error: Unexpected token",
line: 1,
- column: 10
+ column: 10,
+ nodeType: null
}
],
suppressedMessages: [],
severity: 2,
message: "Parsing error: Unexpected token is",
line: 1,
- column: 19
+ column: 19,
+ nodeType: null
}
],
suppressedMessages: [],
const cwd = getFixturePath("ignored-paths", "configurations");
const engine = new ESLint({ cwd });
- // a .eslintignore in parent directories includes `*.js`, but don't load it.
+ // an .eslintignore in parent directories includes `*.js`, but don't load it.
assert(!await engine.isPathIgnored("foo.js"));
assert(await engine.isPathIgnored("node_modules/foo.js"));
});
const rulesMeta = engine.getRulesMetaForResults([]);
- assert.strictEqual(Object.keys(rulesMeta).length, 0);
+ assert.deepStrictEqual(rulesMeta, {});
});
it("should return one rule meta when there is a linting error", async () => {
const results = await engine.lintText("a");
const rulesMeta = engine.getRulesMetaForResults(results);
+ assert.strictEqual(Object.keys(rulesMeta).length, 1);
assert.strictEqual(rulesMeta.semi, coreRules.get("semi").meta);
});
const results = await engine.lintText("a // eslint-disable-line semi");
const rulesMeta = engine.getRulesMetaForResults(results);
+ assert.strictEqual(Object.keys(rulesMeta).length, 1);
assert.strictEqual(rulesMeta.semi, coreRules.get("semi").meta);
});
nodePlugin.rules["no-new-require"].meta
);
});
+
+ it("should ignore messages not related to a rule", async () => {
+ const engine = new ESLint({
+ useEslintrc: false,
+ overrideConfig: {
+ ignorePatterns: "ignored.js",
+ rules: {
+ "no-var": "warn"
+ }
+ },
+ reportUnusedDisableDirectives: "warn"
+ });
+
+ {
+ const results = await engine.lintText("syntax error");
+ const rulesMeta = engine.getRulesMetaForResults(results);
+
+ assert.deepStrictEqual(rulesMeta, {});
+ }
+ {
+ const results = await engine.lintText("// eslint-disable-line no-var");
+ const rulesMeta = engine.getRulesMetaForResults(results);
+
+ assert.deepStrictEqual(rulesMeta, {});
+ }
+ {
+ const results = await engine.lintText("", { filePath: "ignored.js", warnIgnored: true });
+ const rulesMeta = engine.getRulesMetaForResults(results);
+
+ assert.deepStrictEqual(rulesMeta, {});
+ }
+ });
+
+ it("should return a non-empty value if some of the messages are related to a rule", async () => {
+ const engine = new ESLint({
+ useEslintrc: false,
+ overrideConfig: { rules: { "no-var": "warn" } },
+ reportUnusedDisableDirectives: "warn"
+ });
+
+ const results = await engine.lintText("// eslint-disable-line no-var\nvar foo;");
+ const rulesMeta = engine.getRulesMetaForResults(results);
+
+ assert.deepStrictEqual(rulesMeta, { "no-var": coreRules.get("no-var").meta });
+ });
});
describe("outputFixes()", () => {