Skip to content

Commit beb3d69

Browse files
authored
Test eslint plugin against eslint 9 (#16663)
* test eslint-* against eslint 9 * test: provide eslintConfigCompat for older eslint version tests * update NodeGte12NoESM test * Merge two tests The ESLint tests will be run against Node >= 12 only, so nodeGte12NoESM implies itNoESM, which can be merged with itESM into it. * updat babel e2e patches * use eslint.config.mjs for eslint-plugin-import integration test * update duplicated-babel-parser test to ESLint 9 * yarn dedupe * bump eslint to 9.7.0
1 parent 5ddaac4 commit beb3d69

37 files changed

Lines changed: 406 additions & 296 deletions

File tree

eslint/babel-eslint-parser/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"@types/estree": "^1.0.5",
4343
"@typescript-eslint/scope-manager": "^6.19.0",
4444
"dedent": "^1.5.3",
45-
"eslint": "^9.0.0"
45+
"eslint": "^9.7.0"
4646
},
4747
"conditions": {
4848
"BABEL_8_BREAKING": [

eslint/babel-eslint-plugin-development-internal/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"eslint": ">=7.5.0"
2121
},
2222
"devDependencies": {
23-
"eslint": "^8.22.0"
23+
"eslint": "^9.7.0"
2424
},
2525
"type": "module"
2626
}

eslint/babel-eslint-plugin-development/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
},
3232
"homepage": "https://babel.dev/",
3333
"devDependencies": {
34-
"eslint": "^8.22.0"
34+
"eslint": "^9.7.0"
3535
},
3636
"conditions": {
3737
"BABEL_8_BREAKING": [

eslint/babel-eslint-plugin-development/test/rules/no-deprecated-clone.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@ const cloneError = "t.clone() is deprecated. Use t.cloneNode() instead.";
55
const cloneDeepError =
66
"t.cloneDeep() is deprecated. Use t.cloneNode() instead.";
77

8-
const ruleTester = new RuleTester({
9-
parserOptions: { sourceType: "module" },
10-
});
8+
const ruleTester = new RuleTester();
119

1210
ruleTester.run("no-deprecated-clone", rule, {
1311
valid: [

eslint/babel-eslint-plugin-development/test/rules/no-undefined-identifier.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester.j
44
const error =
55
"Use path.scope.buildUndefinedNode() to create an undefined identifier directly.";
66

7-
const ruleTester = new RuleTester({
8-
parserOptions: { sourceType: "module" },
9-
});
7+
const ruleTester = new RuleTester();
108

119
ruleTester.run("no-undefined-identifier", rule, {
1210
valid: [

eslint/babel-eslint-plugin/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
},
4242
"devDependencies": {
4343
"clone-deep": "^4.0.1",
44-
"eslint": "^9.0.0"
44+
"eslint": "^9.7.0"
4545
},
4646
"conditions": {
4747
"BABEL_8_BREAKING": [

eslint/babel-eslint-plugin/test/rules/no-invalid-this.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import cloneDeep from "clone-deep";
22
import rule from "../../lib/rules/no-invalid-this.cjs";
33
import RuleTester from "../../../babel-eslint-shared-fixtures/utils/RuleTester.js";
4+
import { ESLint } from "eslint";
45

56
/**
67
* A constant value for non strict mode environment.
@@ -164,8 +165,12 @@ const patterns = [
164165
},
165166
];
166167

167-
const ruleTester = new RuleTester();
168-
ruleTester.run("@babel/no-invalid-this", rule, {
169-
valid: extractPatterns(patterns, "valid"),
170-
invalid: extractPatterns(patterns, "invalid"),
171-
});
168+
if (parseInt(ESLint.version, 10) < 9) {
169+
const ruleTester = new RuleTester();
170+
ruleTester.run("@babel/no-invalid-this", rule, {
171+
valid: extractPatterns(patterns, "valid"),
172+
invalid: extractPatterns(patterns, "invalid"),
173+
});
174+
} else {
175+
test("@babel/no-invalid-this fallbacks to noop for ESLint 9", () => {});
176+
}

eslint/babel-eslint-shared-fixtures/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"@babel/preset-env": "workspace:^",
1717
"@babel/preset-flow": "workspace:^",
1818
"@babel/preset-react": "workspace:^",
19-
"eslint": "^8.22.0"
19+
"eslint": "^9.7.0"
2020
},
2121
"type": "commonjs"
2222
}
Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
const { RuleTester } = require("eslint");
2+
const {
3+
eslintConfigCompat,
4+
} = require("../../babel-eslint-tests/test/helpers/eslintConfigCompat.cjs");
25

3-
RuleTester.setDefaultConfig({
4-
parser: require.resolve("@babel/eslint-parser"),
5-
parserOptions: {
6-
sourceType: "module",
7-
ecmaVersion: "latest",
8-
babelOptions: {
9-
configFile: require.resolve("../config/babel.config.js"),
6+
const defaultConfig = {
7+
languageOptions: {
8+
parser: require("@babel/eslint-parser"),
9+
parserOptions: {
10+
sourceType: "module",
11+
ecmaVersion: "latest",
12+
babelOptions: {
13+
configFile: require.resolve("../config/babel.config.js"),
14+
},
1015
},
1116
},
12-
});
17+
};
18+
19+
RuleTester.setDefaultConfig(eslintConfigCompat(defaultConfig));
1320

1421
module.exports = RuleTester;

eslint/babel-eslint-tests/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
"@babel/core": "workspace:^",
88
"@babel/eslint-parser": "workspace:^",
99
"@babel/preset-react": "workspace:^",
10+
"@eslint/compat": "^1.1.1",
1011
"dedent": "^1.5.3",
11-
"eslint": "^8.22.0",
12+
"eslint": "^9.7.0",
1213
"eslint-plugin-import": "^2.25.4",
14+
"globals": "^15.6.0",
1315
"npm-babel-parser": "npm:@babel/parser@^7.14.0"
1416
},
1517
"type": "module"

0 commit comments

Comments
 (0)