@@ -8,12 +8,17 @@ const { RuleTester } = require("eslint")
8
8
const { FlatRuleTester } = require ( "eslint/use-at-your-own-risk" )
9
9
const globals = require ( "globals" )
10
10
const semverSatisfies = require ( "semver/functions/satisfies" )
11
+ const os = require ( "os" )
11
12
12
13
// greater than or equal to ESLint v9
13
14
exports . gteEslintV9 = semverSatisfies ( eslintVersion , ">=9" , {
14
15
includePrerelease : true ,
15
16
} )
16
17
18
+ const platform = os . platform ( )
19
+ exports . isCaseSensitiveFileSystem =
20
+ platform === "linux" || platform === "freebsd" || platform === "openbsd"
21
+
17
22
exports . FlatRuleTester = exports . gteEslintV9 ? RuleTester : FlatRuleTester
18
23
19
24
// 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) {
38
43
)
39
44
40
45
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
+ }
41
53
return ruleTester
42
54
}
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
+ }
0 commit comments