@@ -24,6 +24,14 @@ const parserOptions = {
24
24
// Tests
25
25
// ------------------------------------------------------------------------------
26
26
27
+ function stringsMessage ( str ) {
28
+ return `Strings not allowed in JSX files: “${ str } ”` ;
29
+ }
30
+
31
+ function jsxMessage ( str ) {
32
+ return `Missing JSX expression container around literal string: “${ str } ”` ;
33
+ }
34
+
27
35
const ruleTester = new RuleTester ( { parserOptions} ) ;
28
36
ruleTester . run ( 'jsx-no-literals' , rule , {
29
37
@@ -201,7 +209,7 @@ ruleTester.run('jsx-no-literals', rule, {
201
209
}
202
210
` ,
203
211
parser : 'babel-eslint' ,
204
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
212
+ errors : [ { message : jsxMessage ( 'test' ) } ]
205
213
} , {
206
214
code : `
207
215
class Comp1 extends Component {
@@ -211,7 +219,7 @@ ruleTester.run('jsx-no-literals', rule, {
211
219
}
212
220
` ,
213
221
parser : 'babel-eslint' ,
214
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
222
+ errors : [ { message : jsxMessage ( 'test' ) } ]
215
223
} , {
216
224
code : `
217
225
class Comp1 extends Component {
@@ -222,7 +230,7 @@ ruleTester.run('jsx-no-literals', rule, {
222
230
}
223
231
` ,
224
232
parser : 'babel-eslint' ,
225
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
233
+ errors : [ { message : jsxMessage ( 'test' ) } ]
226
234
} , {
227
235
code : `
228
236
class Comp1 extends Component {
@@ -233,7 +241,7 @@ ruleTester.run('jsx-no-literals', rule, {
233
241
}
234
242
` ,
235
243
parser : 'babel-eslint' ,
236
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
244
+ errors : [ { message : jsxMessage ( 'test' ) } ]
237
245
} , {
238
246
code : `
239
247
var Hello = createReactClass({
@@ -244,7 +252,7 @@ ruleTester.run('jsx-no-literals', rule, {
244
252
});
245
253
` ,
246
254
parser : 'babel-eslint' ,
247
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
255
+ errors : [ { message : jsxMessage ( 'hello' ) } ]
248
256
} , {
249
257
code : `
250
258
class Comp1 extends Component {
@@ -258,7 +266,7 @@ ruleTester.run('jsx-no-literals', rule, {
258
266
}
259
267
` ,
260
268
parser : 'babel-eslint' ,
261
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
269
+ errors : [ { message : jsxMessage ( 'asdjfl' ) } ]
262
270
} , {
263
271
code : `
264
272
class Comp1 extends Component {
@@ -274,7 +282,7 @@ ruleTester.run('jsx-no-literals', rule, {
274
282
}
275
283
` ,
276
284
parser : 'babel-eslint' ,
277
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
285
+ errors : [ { message : jsxMessage ( 'asdjfl\n test\n foo' ) } ]
278
286
} , {
279
287
code : `
280
288
class Comp1 extends Component {
@@ -290,7 +298,7 @@ ruleTester.run('jsx-no-literals', rule, {
290
298
}
291
299
` ,
292
300
parser : 'babel-eslint' ,
293
- errors : [ { message : 'Missing JSX expression container around literal string' } ]
301
+ errors : [ { message : jsxMessage ( 'test' ) } ]
294
302
} , {
295
303
code : `
296
304
<Foo bar="test">
@@ -299,23 +307,23 @@ ruleTester.run('jsx-no-literals', rule, {
299
307
` ,
300
308
parser : 'babel-eslint' ,
301
309
options : [ { noStrings : true } ] ,
302
- errors : [ { message : 'Strings not allowed in JSX files' } ]
310
+ errors : [ { message : stringsMessage ( '\'Test\'' ) } ]
303
311
} , {
304
312
code : `
305
313
<Foo bar="test">
306
314
{'Test'}
307
315
</Foo>
308
316
` ,
309
317
options : [ { noStrings : true } ] ,
310
- errors : [ { message : 'Strings not allowed in JSX files' } ]
318
+ errors : [ { message : stringsMessage ( '\'Test\'' ) } ]
311
319
} , {
312
320
code : `
313
321
<Foo bar="test">
314
322
{'Test' + name}
315
323
</Foo>
316
324
` ,
317
325
options : [ { noStrings : true } ] ,
318
- errors : [ { message : 'Strings not allowed in JSX files' } ]
326
+ errors : [ { message : stringsMessage ( '\'Test\'' ) } ]
319
327
} , {
320
328
code : `
321
329
<Foo bar="test">
@@ -324,55 +332,55 @@ ruleTester.run('jsx-no-literals', rule, {
324
332
` ,
325
333
parser : 'babel-eslint' ,
326
334
options : [ { noStrings : true } ] ,
327
- errors : [ { message : 'Strings not allowed in JSX files' } ]
335
+ errors : [ { message : stringsMessage ( 'Test' ) } ]
328
336
} , {
329
337
code : `
330
338
<Foo bar="test">
331
339
Test
332
340
</Foo>
333
341
` ,
334
342
options : [ { noStrings : true } ] ,
335
- errors : [ { message : 'Strings not allowed in JSX files' } ]
343
+ errors : [ { message : stringsMessage ( 'Test' ) } ]
336
344
} , {
337
345
code : `
338
346
<Foo>
339
347
{\`Test\`}
340
348
</Foo>
341
349
` ,
342
350
options : [ { noStrings : true } ] ,
343
- errors : [ { message : 'Strings not allowed in JSX files' } ]
351
+ errors : [ { message : stringsMessage ( '`Test`' ) } ]
344
352
} , {
345
353
code : '<Foo bar={`Test`} />' ,
346
354
options : [ { noStrings : true } ] ,
347
- errors : [ { message : 'Strings not allowed in JSX files' } ]
355
+ errors : [ { message : stringsMessage ( '`Test`' ) } ]
348
356
} , {
349
357
code : '<Foo bar={`${baz}`} />' ,
350
358
options : [ { noStrings : true } ] ,
351
- errors : [ { message : 'Strings not allowed in JSX files' } ]
359
+ errors : [ { message : stringsMessage ( '`${baz}`' ) } ]
352
360
} , {
353
361
code : '<Foo bar={`Test ${baz}`} />' ,
354
362
options : [ { noStrings : true } ] ,
355
- errors : [ { message : 'Strings not allowed in JSX files' } ]
363
+ errors : [ { message : stringsMessage ( '`Test ${baz}`' ) } ]
356
364
} , {
357
365
code : '<Foo bar={`foo` + \'bar\'} />' ,
358
366
options : [ { noStrings : true } ] ,
359
367
errors : [
360
- { message : 'Strings not allowed in JSX files' } ,
361
- { message : 'Strings not allowed in JSX files' }
368
+ { message : stringsMessage ( '`foo`' ) } ,
369
+ { message : stringsMessage ( '\'bar\'' ) }
362
370
]
363
371
} , {
364
372
code : '<Foo bar={`foo` + `bar`} />' ,
365
373
options : [ { noStrings : true } ] ,
366
374
errors : [
367
- { message : 'Strings not allowed in JSX files' } ,
368
- { message : 'Strings not allowed in JSX files' }
375
+ { message : stringsMessage ( '`foo`' ) } ,
376
+ { message : stringsMessage ( '`bar`' ) }
369
377
]
370
378
} , {
371
379
code : '<Foo bar={\'foo\' + `bar`} />' ,
372
380
options : [ { noStrings : true } ] ,
373
381
errors : [
374
- { message : 'Strings not allowed in JSX files' } ,
375
- { message : 'Strings not allowed in JSX files' }
382
+ { message : stringsMessage ( '\'foo\'' ) } ,
383
+ { message : stringsMessage ( '`bar`' ) }
376
384
]
377
385
}
378
386
]
0 commit comments