@@ -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.)
@@ -40,5 +45,21 @@ exports.RuleTester = function (config = defaultConfig) {
40
45
)
41
46
42
47
const ruleTester = new exports . FlatRuleTester ( config )
48
+ const $run = ruleTester . run . bind ( ruleTester )
49
+ ruleTester . run = function ( name , rule , tests ) {
50
+ tests . valid = tests . valid . filter ( shouldRun )
51
+ tests . invalid = tests . invalid . filter ( shouldRun )
52
+
53
+ $run ( name , rule , tests )
54
+ }
43
55
return ruleTester
44
56
}
57
+
58
+ // support skip in tests
59
+ function shouldRun ( item ) {
60
+ if ( typeof item === "string" ) return true
61
+
62
+ const skip = item . skip
63
+ delete item . skip
64
+ return skip === void 0 || skip === false
65
+ }
0 commit comments