1
1
import fs from "fs" ;
2
2
import path from "path" ;
3
- import { RuleTester } from "eslint" ;
3
+ import { RuleTester } from "../test-lib/eslint-compat" ;
4
+ import type { RuleTester as ESLintRuleTester } from "eslint" ;
4
5
import rule from "../../../lib/rules/indent" ;
6
+ import * as jsonParser from "jsonc-eslint-parser" ;
5
7
6
8
// ------------------------------------------------------------------------------
7
9
// Helpers
@@ -22,8 +24,8 @@ const FIXTURE_ROOT = path.resolve(__dirname, "../../fixtures/indent/");
22
24
*
23
25
*/
24
26
function loadPatterns (
25
- additionalValid : RuleTester . ValidTestCase [ ] ,
26
- additionalInvalid : RuleTester . InvalidTestCase [ ] ,
27
+ additionalValid : ESLintRuleTester . ValidTestCase [ ] ,
28
+ additionalInvalid : ESLintRuleTester . InvalidTestCase [ ] ,
27
29
) {
28
30
const valid = fs . readdirSync ( FIXTURE_ROOT ) . map ( ( filename ) => {
29
31
const code0 = fs . readFileSync ( path . join ( FIXTURE_ROOT , filename ) , "utf8" ) ;
@@ -33,12 +35,18 @@ function loadPatterns(
33
35
const baseObj = JSON . parse (
34
36
/ ^ (?: \/ \* | < ! - - ) ( .+ ?) (?: \* \/ | - - > ) / u. exec ( code0 ) ! [ 1 ] ,
35
37
) ;
36
- if ( "parser" in baseObj ) {
37
- baseObj . parser = require . resolve ( baseObj . parser ) ;
38
+ baseObj . languageOptions ??= { } ;
39
+ if ( "parser" in baseObj . languageOptions ) {
40
+ // eslint-disable-next-line @typescript-eslint/no-require-imports -- ignore
41
+ baseObj . languageOptions . parser = require ( baseObj . languageOptions . parser ) ;
38
42
}
39
- if ( "parserOptions" in baseObj && "parser" in baseObj . parserOptions ) {
40
- baseObj . parserOptions . parser = require . resolve (
41
- baseObj . parserOptions . parser ,
43
+ if (
44
+ baseObj . languageOptions . parserOptions &&
45
+ "parser" in baseObj . languageOptions . parserOptions
46
+ ) {
47
+ // eslint-disable-next-line @typescript-eslint/no-require-imports -- ignore
48
+ baseObj . languageOptions . parserOptions . parser = require (
49
+ baseObj . languageOptions . parserOptions . parser ,
42
50
) ;
43
51
}
44
52
return Object . assign ( baseObj , { code, filename } ) ;
@@ -104,7 +112,9 @@ function unIndent(strings: TemplateStringsArray) {
104
112
}
105
113
106
114
const tester = new RuleTester ( {
107
- parser : require . resolve ( "jsonc-eslint-parser" ) ,
115
+ languageOptions : {
116
+ parser : jsonParser ,
117
+ } ,
108
118
} ) ;
109
119
110
120
tester . run (
0 commit comments