Skip to content

Commit 391c4f1

Browse files
committed
Type-only imports were added in TypeScript ESTree 2.23.0
1 parent 95bd584 commit 391c4f1

File tree

6 files changed

+45
-69
lines changed

6 files changed

+45
-69
lines changed

tests/src/rules/first.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ ruleTester.run('first', rule, {
8080

8181
context('TypeScript', function () {
8282
getTSParsers()
83-
.filter((parser) => parser !== require.resolve('typescript-eslint-parser'))
8483
.forEach((parser) => {
8584
const parserConfig = {
8685
parser,

tests/src/rules/max-dependencies.js

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

33
import { RuleTester } from 'eslint';
4-
import eslintPkg from 'eslint/package.json';
4+
import estreePkg from '@typescript-eslint/typescript-estree/package.json';
55
import semver from 'semver';
66

77
const ruleTester = new RuleTester();
@@ -91,7 +91,7 @@ ruleTester.run('max-dependencies', rule, {
9191
],
9292
});
9393

94-
(semver.satisfies(eslintPkg.version, '>5.0.0') ? describe.skip : describe)('TypeScript', () => {
94+
(semver.satisfies(estreePkg.version, '<2.23.0') ? describe.skip : describe)('TypeScript', () => {
9595
getTSParsers().forEach((parser) => {
9696
ruleTester.run(`max-dependencies (${parser.replace(process.cwd(), '.')})`, rule, {
9797
valid: [

tests/src/rules/no-duplicates.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { test as testUtil, getNonDefaultParsers } from '../utils';
44
import { RuleTester } from 'eslint';
55
import eslintPkg from 'eslint/package.json';
66
import semver from 'semver';
7+
import estreePkg from '@typescript-eslint/typescript-estree/package.json';
78

89
const ruleTester = new RuleTester();
910
const rule = require('rules/no-duplicates');
@@ -415,9 +416,8 @@ import {x,y} from './foo'
415416
],
416417
});
417418

418-
context('TypeScript', function () {
419+
(semver.satisfies(estreePkg.version, '<2.23.0') ? describe.skip : describe)('TypeScript', () => {
419420
getNonDefaultParsers()
420-
.filter((parser) => parser !== require.resolve('typescript-eslint-parser'))
421421
.forEach((parser) => {
422422
const parserConfig = {
423423
parser,

tests/src/rules/no-extraneous-dependencies.js

Lines changed: 35 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import typescriptConfig from '../../../config/typescript';
33
import path from 'path';
44
import fs from 'fs';
55
import semver from 'semver';
6-
import eslintPkg from 'eslint/package.json';
6+
import estreePkg from '@typescript-eslint/typescript-estree/package.json';
77

88
import { RuleTester } from 'eslint';
99
import flatMap from 'array.prototype.flatmap';
@@ -380,8 +380,7 @@ ruleTester.run('no-extraneous-dependencies', rule, {
380380
],
381381
});
382382

383-
// TODO: figure out why these tests fail in eslint 4
384-
(semver.satisfies(eslintPkg.version, '^4') ? describe.skip : describe)('TypeScript', () => {
383+
(semver.satisfies(estreePkg.version, '<2.23.0') ? describe.skip : describe)('TypeScript', () => {
385384
getTSParsers().forEach((parser) => {
386385
const parserConfig = {
387386
parser,
@@ -391,63 +390,39 @@ ruleTester.run('no-extraneous-dependencies', rule, {
391390
},
392391
};
393392

394-
if (parser !== require.resolve('typescript-eslint-parser')) {
395-
ruleTester.run('no-extraneous-dependencies', rule, {
396-
valid: [
397-
test(Object.assign({
398-
code: 'import type T from "a";',
399-
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
400-
}, parserConfig)),
401-
],
402-
invalid: [
403-
test(Object.assign({
404-
code: 'import T from "a";',
405-
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
406-
errors: [{
407-
message: "'a' should be listed in the project's dependencies, not devDependencies.",
408-
}],
409-
}, parserConfig)),
410-
],
411-
});
412-
} else {
413-
ruleTester.run('no-extraneous-dependencies', rule, {
414-
valid: [],
415-
invalid: [
416-
test(Object.assign({
417-
code: 'import T from "a"; /* typescript-eslint-parser */',
418-
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
419-
errors: [{
420-
message: "'a' should be listed in the project's dependencies, not devDependencies.",
421-
}],
422-
}, parserConfig)),
423-
test(Object.assign({
424-
code: 'import type T from "a"; /* typescript-eslint-parser */',
425-
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
426-
errors: [{
427-
message: "'a' should be listed in the project's dependencies, not devDependencies.",
428-
}],
429-
}, parserConfig)),
430-
],
431-
});
432-
}
393+
ruleTester.run('no-extraneous-dependencies', rule, {
394+
valid: [
395+
test(Object.assign({
396+
code: 'import type T from "a";',
397+
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
398+
}, parserConfig)),
399+
],
400+
invalid: [
401+
test(Object.assign({
402+
code: 'import T from "a";',
403+
options: [{ packageDir: packageDirWithTypescriptDevDependencies, devDependencies: false }],
404+
errors: [{
405+
message: "'a' should be listed in the project's dependencies, not devDependencies.",
406+
}],
407+
}, parserConfig)),
408+
],
409+
});
433410
});
434411
});
435412

436-
if (semver.satisfies(eslintPkg.version, '>5.0.0')) {
437-
typescriptRuleTester.run('no-extraneous-dependencies typescript type imports', rule, {
438-
valid: [
439-
test({
440-
code: 'import type MyType from "not-a-dependency";',
441-
filename: testFilePath('./no-unused-modules/typescript/file-ts-a.ts'),
442-
parser: require.resolve('babel-eslint'),
443-
}),
444-
test({
445-
code: 'import type { MyType } from "not-a-dependency";',
446-
filename: testFilePath('./no-unused-modules/typescript/file-ts-a.ts'),
447-
parser: require.resolve('babel-eslint'),
448-
}),
449-
],
450-
invalid: [
451-
],
452-
});
453-
}
413+
typescriptRuleTester.run('no-extraneous-dependencies typescript type imports', rule, {
414+
valid: [
415+
test({
416+
code: 'import type MyType from "not-a-dependency";',
417+
filename: testFilePath('./no-unused-modules/typescript/file-ts-a.ts'),
418+
parser: require.resolve('babel-eslint'),
419+
}),
420+
test({
421+
code: 'import type { MyType } from "not-a-dependency";',
422+
filename: testFilePath('./no-unused-modules/typescript/file-ts-a.ts'),
423+
parser: require.resolve('babel-eslint'),
424+
}),
425+
],
426+
invalid: [
427+
],
428+
});

tests/src/rules/no-unresolved.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { getTSParsers, test, SYNTAX_CASES, testVersion } from '../utils';
55
import { CASE_SENSITIVE_FS } from 'eslint-module-utils/resolve';
66

77
import { RuleTester } from 'eslint';
8+
import semver from 'semver';
9+
import estreePkg from '@typescript-eslint/typescript-estree/package.json';
810

911
const ruleTester = new RuleTester();
1012
const rule = require('rules/no-unresolved');
@@ -442,8 +444,8 @@ ruleTester.run('import() with built-in parser', rule, {
442444
),
443445
});
444446

445-
context('TypeScript', () => {
446-
getTSParsers().filter(x => x !== require.resolve('typescript-eslint-parser')).forEach((parser) => {
447+
(semver.satisfies(estreePkg.version, '<2.23.0') ? describe.skip : describe)('TypeScript', () => {
448+
getTSParsers().forEach((parser) => {
447449
ruleTester.run(`${parser}: no-unresolved ignore type-only`, rule, {
448450
valid: [
449451
test({

tests/src/rules/order.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { test, getTSParsers, getNonDefaultParsers } from '../utils';
33
import { RuleTester } from 'eslint';
44
import eslintPkg from 'eslint/package.json';
55
import semver from 'semver';
6+
import estreePkg from '@typescript-eslint/typescript-estree/package.json';
67
import flatMap from 'array.prototype.flatmap';
78

89
const ruleTester = new RuleTester();
@@ -2281,9 +2282,8 @@ ruleTester.run('order', rule, {
22812282
});
22822283

22832284

2284-
context('TypeScript', function () {
2285+
(semver.satisfies(estreePkg.version, '<2.23.0') ? describe.skip : describe)('TypeScript', () => {
22852286
getNonDefaultParsers()
2286-
.filter((parser) => parser !== require.resolve('typescript-eslint-parser'))
22872287
.forEach((parser) => {
22882288
const parserConfig = {
22892289
parser,

0 commit comments

Comments
 (0)