Skip to content

Commit 86b6cd7

Browse files
committed
feat(import-target): Add resolution error reason
1 parent f9e454d commit 86b6cd7

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

tests/eslint-rule-tester.js

+19
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@ const { RuleTester } = require("eslint")
88
const { FlatRuleTester } = require("eslint/use-at-your-own-risk")
99
const globals = require("globals")
1010
const semverSatisfies = require("semver/functions/satisfies")
11+
const os = require("os")
1112

1213
// greater than or equal to ESLint v9
1314
exports.gteEslintV9 = semverSatisfies(eslintVersion, ">=9", {
1415
includePrerelease: true,
1516
})
1617

18+
const platform = os.platform()
19+
exports.isCaseSensitiveFileSystem =
20+
platform === "linux" || platform === "freebsd" || platform === "openbsd"
21+
1722
exports.FlatRuleTester = exports.gteEslintV9 ? RuleTester : FlatRuleTester
1823

1924
// to support the `env:{ es6: true, node: true}` rule-tester (env has been away in flat config.)
@@ -38,5 +43,19 @@ exports.RuleTester = function (config = defaultConfig) {
3843
)
3944

4045
const ruleTester = new exports.FlatRuleTester(config)
46+
const $run = ruleTester.run.bind(ruleTester)
47+
ruleTester.run = function (name, rule, tests) {
48+
tests.valid = tests.valid.filter(shouldRun)
49+
tests.invalid = tests.invalid.filter(shouldRun)
50+
51+
$run(name, rule, tests)
52+
}
4153
return ruleTester
4254
}
55+
56+
// support skip in tests
57+
function shouldRun(item) {
58+
const skip = typeof item === "string" ? false : item.skip
59+
delete item.skip
60+
return skip === void 0 || skip === false
61+
}

tests/lib/rules/no-missing-import.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
const path = require("path")
88
const { Linter } = require("eslint")
9-
const { RuleTester } = require("#eslint-rule-tester")
9+
const { RuleTester, isCaseSensitiveFileSystem } = require("#eslint-rule-tester")
1010
const rule = require("../../../lib/rules/no-missing-import")
1111

1212
const DynamicImportSupported = (() => {
@@ -427,6 +427,7 @@ ruleTester.run("no-missing-import", rule, {
427427
filename: fixture("test.js"),
428428
code: "import a from './A.js';",
429429
errors: cantResolve("./A.js"),
430+
skip: !isCaseSensitiveFileSystem,
430431
},
431432

432433
{

tests/lib/rules/no-missing-require.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"use strict"
66

77
const path = require("path")
8-
const RuleTester = require("#eslint-rule-tester").RuleTester
8+
const { RuleTester, isCaseSensitiveFileSystem } = require("#eslint-rule-tester")
99
const rule = require("../../../lib/rules/no-missing-require")
1010

1111
const tsReactExtensionMap = [
@@ -396,6 +396,7 @@ ruleTester.run("no-missing-require", rule, {
396396
filename: fixture("test.js"),
397397
code: "require('./A');",
398398
errors: cantResolve("./A"),
399+
skip: !isCaseSensitiveFileSystem,
399400
},
400401

401402
// require.resolve

0 commit comments

Comments
 (0)