9
9
// Requirements
10
10
// ------------------------------------------------------------------------------
11
11
12
+ const semver = require ( 'semver' ) ;
13
+
14
+ let allowsInvalidJSX = false ;
15
+ try {
16
+ // eslint-disable-next-line import/no-extraneous-dependencies, global-require
17
+ allowsInvalidJSX = semver . satisfies ( require ( 'acorn-jsx/package.json' ) . version , '< 5.2' ) ;
18
+ } catch ( e ) { /**/ }
19
+
12
20
const RuleTester = require ( 'eslint' ) . RuleTester ;
13
21
const rule = require ( '../../../lib/rules/no-unescaped-entities' ) ;
14
22
@@ -107,7 +115,7 @@ ruleTester.run('no-unescaped-entities', rule, {
107
115
] ,
108
116
109
117
invalid : [
110
- {
118
+ ( allowsInvalidJSX && {
111
119
code : `
112
120
var Hello = createReactClass({
113
121
render: function() {
@@ -116,7 +124,7 @@ ruleTester.run('no-unescaped-entities', rule, {
116
124
});
117
125
` ,
118
126
errors : [ { message : '`>` can be escaped with `>`.' } ]
119
- } , {
127
+ } ) , {
120
128
code : `
121
129
var Hello = createReactClass({
122
130
render: function() {
@@ -126,7 +134,7 @@ ruleTester.run('no-unescaped-entities', rule, {
126
134
` ,
127
135
parser : parsers . BABEL_ESLINT ,
128
136
errors : [ { message : '`>` can be escaped with `>`.' } ]
129
- } , {
137
+ } , ( allowsInvalidJSX && {
130
138
code : `
131
139
var Hello = createReactClass({
132
140
render: function() {
@@ -137,7 +145,7 @@ ruleTester.run('no-unescaped-entities', rule, {
137
145
});
138
146
` ,
139
147
errors : [ { message : '`>` can be escaped with `>`.' } ]
140
- } , {
148
+ } ) , {
141
149
code : `
142
150
var Hello = createReactClass({
143
151
render: function() {
@@ -158,7 +166,7 @@ ruleTester.run('no-unescaped-entities', rule, {
158
166
});
159
167
` ,
160
168
errors : [ { message : '`\'` can be escaped with `'`, `‘`, `'`, `’`.' } ]
161
- } , {
169
+ } , ( allowsInvalidJSX && {
162
170
code : `
163
171
var Hello = createReactClass({
164
172
render: function() {
@@ -171,7 +179,7 @@ ruleTester.run('no-unescaped-entities', rule, {
171
179
{ message : '`>` can be escaped with `>`.' } ,
172
180
{ message : '`>` can be escaped with `>`.' }
173
181
]
174
- } , {
182
+ } ) , ( allowsInvalidJSX && {
175
183
code : `
176
184
var Hello = createReactClass({
177
185
render: function() {
@@ -180,7 +188,7 @@ ruleTester.run('no-unescaped-entities', rule, {
180
188
});
181
189
` ,
182
190
errors : [ { message : '`}` can be escaped with `}`.' } ]
183
- } , {
191
+ } ) , {
184
192
code : `
185
193
var Hello = createReactClass({
186
194
render: function() {
@@ -231,5 +239,5 @@ ruleTester.run('no-unescaped-entities', rule, {
231
239
} ]
232
240
} ]
233
241
}
234
- ]
242
+ ] . filter ( Boolean )
235
243
} ) ;
0 commit comments