11
11
// Requirements
12
12
//------------------------------------------------------------------------------
13
13
14
- const path = require ( "path" ) ,
14
+ const
15
+ assert = require ( "assert" ) ,
16
+ path = require ( "path" ) ,
17
+ { Linter } = require ( "eslint" ) ,
15
18
shelljs = require ( "shelljs" ) ,
19
+ parser = require ( "../../" ) ,
16
20
testUtils = require ( "../../tools/test-utils" ) ;
17
21
18
22
//------------------------------------------------------------------------------
@@ -39,4 +43,74 @@ describe("TSX", () => {
39
43
} ;
40
44
test ( `fixtures/${ filename } .src` , testUtils . createSnapshotTestBlock ( code , config ) ) ;
41
45
} ) ;
46
+
47
+ describe ( "if the filename ends with '.tsx', enable jsx option automatically." , ( ) => {
48
+ const linter = new Linter ( ) ;
49
+ linter . defineParser ( "typescript-eslint-parser" , parser ) ;
50
+
51
+ test ( "anonymous" , ( ) => {
52
+ const code = "const element = <T/>" ;
53
+ const config = {
54
+ parser : "typescript-eslint-parser"
55
+ } ;
56
+ const messages = linter . verify ( code , config ) ;
57
+
58
+ assert . deepStrictEqual (
59
+ messages ,
60
+ [ {
61
+ column : 18 ,
62
+ fatal : true ,
63
+ line : 1 ,
64
+ message : "Parsing error: '>' expected." ,
65
+ ruleId : null ,
66
+ severity : 2 ,
67
+ source : "const element = <T/>"
68
+ } ]
69
+ ) ;
70
+ } ) ;
71
+
72
+ test ( "test.ts" , ( ) => {
73
+ const code = "const element = <T/>" ;
74
+ const config = {
75
+ parser : "typescript-eslint-parser"
76
+ } ;
77
+ const messages = linter . verify ( code , config , { filename : "test.ts" } ) ;
78
+
79
+ assert . deepStrictEqual (
80
+ messages ,
81
+ [ {
82
+ column : 18 ,
83
+ fatal : true ,
84
+ line : 1 ,
85
+ message : "Parsing error: '>' expected." ,
86
+ ruleId : null ,
87
+ severity : 2 ,
88
+ source : "const element = <T/>"
89
+ } ]
90
+ ) ;
91
+ } ) ;
92
+
93
+ test ( "test.ts with 'jsx' option" , ( ) => {
94
+ const code = "const element = <T/>" ;
95
+ const config = {
96
+ parser : "typescript-eslint-parser" ,
97
+ parserOptions : {
98
+ jsx : true
99
+ }
100
+ } ;
101
+ const messages = linter . verify ( code , config , { filename : "test.ts" } ) ;
102
+
103
+ assert . deepStrictEqual ( messages , [ ] ) ;
104
+ } ) ;
105
+
106
+ test ( "test.tsx" , ( ) => {
107
+ const code = "const element = <T/>" ;
108
+ const config = {
109
+ parser : "typescript-eslint-parser"
110
+ } ;
111
+ const messages = linter . verify ( code , config , { filename : "test.tsx" } ) ;
112
+
113
+ assert . deepStrictEqual ( messages , [ ] ) ;
114
+ } ) ;
115
+ } ) ;
42
116
} ) ;
0 commit comments