Skip to content

Commit 2196d97

Browse files
authored
fix: handle absolute file paths in FlatRuleTester (#18064)
1 parent f4a1fe2 commit 2196d97

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

lib/rule-tester/flat-rule-tester.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
const
1414
assert = require("assert"),
1515
util = require("util"),
16+
path = require("path"),
1617
equal = require("fast-deep-equal"),
1718
Traverser = require("../shared/traverser"),
1819
{ getRuleOptionsSchema } = require("../config/flat-config-helpers"),
@@ -592,7 +593,15 @@ class FlatRuleTester {
592593
* @private
593594
*/
594595
function runRuleForItem(item) {
595-
const configs = new FlatConfigArray(testerConfig, { baseConfig });
596+
const flatConfigArrayOptions = {
597+
baseConfig
598+
};
599+
600+
if (item.filename) {
601+
flatConfigArrayOptions.basePath = path.parse(item.filename).root;
602+
}
603+
604+
const configs = new FlatConfigArray(testerConfig, flatConfigArrayOptions);
596605

597606
/*
598607
* Modify the returned config so that the parser is wrapped to catch

tests/lib/rule-tester/flat-rule-tester.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,6 +1808,22 @@ describe("FlatRuleTester", () => {
18081808
}, /Fixable rules must set the `meta\.fixable` property/u);
18091809
});
18101810

1811+
// https://github.com/eslint/eslint/issues/17962
1812+
it("should not throw an error in case of absolute paths", () => {
1813+
ruleTester.run("no-eval", require("../../fixtures/testers/rule-tester/no-eval"), {
1814+
valid: [
1815+
"Eval(foo)"
1816+
],
1817+
invalid: [
1818+
{
1819+
code: "eval(foo)",
1820+
filename: "/an-absolute-path/foo.js",
1821+
errors: [{ message: "eval sucks.", type: "CallExpression" }]
1822+
}
1823+
]
1824+
});
1825+
});
1826+
18111827
describe("suggestions", () => {
18121828
it("should pass with valid suggestions (tested using desc)", () => {
18131829
ruleTester.run("suggestions-basic", require("../../fixtures/testers/rule-tester/suggestions").basic, {

0 commit comments

Comments
 (0)