@@ -3,7 +3,7 @@ import typescriptConfig from '../../../config/typescript';
33import path from 'path' ;
44import fs from 'fs' ;
55import semver from 'semver' ;
6- import eslintPkg from 'eslint /package.json' ;
6+ import tsPkg from 'typescript /package.json' ;
77
88import { RuleTester } from 'eslint' ;
99import 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 ( tsPkg . version , '>=3.8' ) ? 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+ } ) ;
0 commit comments