1
- import { test } from '../utils'
1
+ import { test , getTSParsers } from '../utils'
2
2
3
3
import { RuleTester } from 'eslint'
4
+ import flatMap from 'array.prototype.flatmap'
4
5
5
- const ruleTester = new RuleTester ( )
6
+ const ruleTester = new RuleTester ( { parserOptions : { sourceType : 'module' } } )
6
7
, rule = require ( 'rules/first' )
7
8
8
9
ruleTester . run ( 'first' , rule , {
@@ -16,7 +17,42 @@ ruleTester.run('first', rule, {
16
17
} )
17
18
, test ( { code : "'use directive';\
18
19
import { x } from 'foo';" } )
19
- ,
20
+ , ...flatMap ( getTSParsers ( ) , parser => [
21
+ test ( {
22
+ parser,
23
+ code : `
24
+ import fs = require('fs');
25
+ import { x } from './foo';
26
+ import { y } from './bar';
27
+ ` ,
28
+ } ) ,
29
+ test ( {
30
+ parser,
31
+ code : `
32
+ import fs = require('fs');
33
+ import { x } from './foo';
34
+ import { y } from './bar';
35
+ ` ,
36
+ options : [ 'absolute-first' ] ,
37
+ } ) ,
38
+ test ( {
39
+ parser,
40
+ code : `
41
+ import { x } from './foo';
42
+ import fs = require('fs');
43
+ import { y } from './bar';
44
+ ` ,
45
+ } ) ,
46
+ test ( {
47
+ parser,
48
+ code : `
49
+ import { x } from './foo';
50
+ import fs = require('fs');
51
+ import { y } from './bar';
52
+ ` ,
53
+ options : [ 'disable-absolute-first' ] ,
54
+ } ) ,
55
+ ] ) ,
20
56
] ,
21
57
invalid : [
22
58
test ( { code : "import { x } from './foo';\
@@ -65,6 +101,28 @@ ruleTester.run('first', rule, {
65
101
, errors : 1
66
102
, output : "import a from 'b'\nif (true) { console.log(1) }" ,
67
103
} )
68
- ,
104
+ , ...flatMap ( getTSParsers ( ) , parser => [
105
+ {
106
+ parser,
107
+ code : `
108
+ import { x } from './foo';
109
+ import fs = require('fs');
110
+ ` ,
111
+ options : [ 'absolute-first' ] ,
112
+ errors : 1 ,
113
+ } ,
114
+ {
115
+ parser,
116
+ code : `
117
+ var a = 1;
118
+ import fs = require('fs');
119
+ ` ,
120
+ errors : 1 ,
121
+ output : `
122
+ import fs = require('fs');
123
+ var a = 1;
124
+ ` ,
125
+ } ,
126
+ ] ) ,
69
127
] ,
70
128
} )
0 commit comments