Skip to content

Commit 624aa61

Browse files
sosukesuzukiljharb
authored andcommitted
[Tests] test on @typescript-eslint/parser@5
1 parent b74013d commit 624aa61

File tree

4 files changed

+25
-13
lines changed

4 files changed

+25
-13
lines changed

.github/workflows/node-4+.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ jobs:
3434
- 3
3535
- 2
3636
include:
37+
- node-version: 'lts/*'
38+
eslint: 7
39+
ts-parser: 4
40+
env:
41+
TS_PARSER: 4
3742
- node-version: 'lts/*'
3843
eslint: 7
3944
ts-parser: 3

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
"@angular-eslint/template-parser": "^13.0.1",
5757
"@eslint/import-test-order-redirect-scoped": "file:./tests/files/order-redirect-scoped",
5858
"@test-scope/some-module": "file:./tests/files/symlinked-module",
59-
"@typescript-eslint/parser": "^2.23.0 || ^3.3.0 || ^4.29.3",
59+
"@typescript-eslint/parser": "^2.23.0 || ^3.3.0 || ^4.29.3 || ^5.10.0",
6060
"array.prototype.flatmap": "^1.2.5",
6161
"babel-cli": "^6.26.0",
6262
"babel-core": "^6.26.3",

tests/dep-time-travel.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ elif [[ "$ESLINT_VERSION" -lt "5" ]]; then # completely remove the new TypeScrip
2121
npm uninstall --no-save @typescript-eslint/parser
2222
elif [[ "$TRAVIS_NODE_VERSION" -lt "10" ]]; then # TS parser 3 requires node 10+
2323
npm i --no-save "@typescript-eslint/parser@3"
24+
elif [[ "$TRAVIS_NODE_VERSION" -lt "12" ]]; then # TS parser 4 requires node 12+
25+
npm i --no-save "@typescript-eslint/parser@4"
2426
fi
2527

2628
# use these alternate TypeScript dependencies for ESLint < v4

tests/src/rules/no-webpack-loader-syntax.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { test, getTSParsers } from '../utils';
1+
import { test, getTSParsers, parsers } from '../utils';
22

33
import { RuleTester } from 'eslint';
4+
import semver from 'semver';
45

56
const ruleTester = new RuleTester();
67
const rule = require('rules/no-webpack-loader-syntax');
@@ -82,16 +83,20 @@ context('TypeScript', function () {
8283
'import/resolver': { 'eslint-import-resolver-typescript': true },
8384
},
8485
};
85-
ruleTester.run('no-webpack-loader-syntax', rule, {
86-
valid: [
87-
test(Object.assign({
88-
code: 'import { foo } from\nalert()',
89-
}, parserConfig)),
90-
test(Object.assign({
91-
code: 'import foo from\nalert()',
92-
}, parserConfig)),
93-
],
94-
invalid: [],
95-
});
86+
// @typescript-eslint/parser@5+ throw error for invalid module specifiers at parsing time.
87+
// https://github.com/typescript-eslint/typescript-eslint/releases/tag/v5.0.0
88+
if (!(parser === parsers.TS_NEW && semver.satisfies(require('@typescript-eslint/parser/package.json').version, '>= 5'))) {
89+
ruleTester.run('no-webpack-loader-syntax', rule, {
90+
valid: [
91+
test(Object.assign({
92+
code: 'import { foo } from\nalert()',
93+
}, parserConfig)),
94+
test(Object.assign({
95+
code: 'import foo from\nalert()',
96+
}, parserConfig)),
97+
],
98+
invalid: [],
99+
});
100+
}
96101
});
97102
});

0 commit comments

Comments
 (0)