@@ -143,13 +143,10 @@ function baz() {
143
143
} )
144
144
145
145
describe ( "invalid" , ( ) => {
146
- for ( const testCase of [
146
+ for ( const { code , errors , reportUnusedDisableDirectives } of [
147
147
{
148
- title : "Generic same line" ,
149
148
code : `/*eslint no-undef:off*/
150
149
var a = b //eslint-disable-line` ,
151
- output : `/*eslint no-undef:off*/
152
- var a = b ` ,
153
150
errors : [
154
151
{
155
152
message :
@@ -162,11 +159,8 @@ var a = b `,
162
159
] ,
163
160
} ,
164
161
{
165
- title : "Specific same line" ,
166
162
code : `/*eslint no-undef:off*/
167
163
var a = b //eslint-disable-line no-undef` ,
168
- output : `/*eslint no-undef:off*/
169
- var a = b ` ,
170
164
errors : [
171
165
{
172
166
message :
@@ -179,7 +173,6 @@ var a = b `,
179
173
] ,
180
174
} ,
181
175
{
182
- title : "Multiple in a same line" ,
183
176
code : `/*eslint no-undef:off, no-unused-vars:off*/
184
177
var a = b //eslint-disable-line no-undef,no-unused-vars` ,
185
178
errors : [
@@ -202,12 +195,8 @@ var a = b //eslint-disable-line no-undef,no-unused-vars`,
202
195
] ,
203
196
} ,
204
197
{
205
- title : "Generic next line" ,
206
198
code : `/*eslint no-undef:off*/
207
199
//eslint-disable-next-line
208
- var a = b` ,
209
- output : `/*eslint no-undef:off*/
210
-
211
200
var a = b` ,
212
201
errors : [
213
202
{
@@ -221,12 +210,8 @@ var a = b`,
221
210
] ,
222
211
} ,
223
212
{
224
- title : "Specific next line" ,
225
213
code : `/*eslint no-undef:off*/
226
214
//eslint-disable-next-line no-undef
227
- var a = b` ,
228
- output : `/*eslint no-undef:off*/
229
-
230
215
var a = b` ,
231
216
errors : [
232
217
{
@@ -240,7 +225,6 @@ var a = b`,
240
225
] ,
241
226
} ,
242
227
{
243
- title : "Multiple next line" ,
244
228
code : `/*eslint no-undef:off, no-unused-vars:off*/
245
229
//eslint-disable-next-line no-undef,no-unused-vars
246
230
var a = b` ,
@@ -264,12 +248,8 @@ var a = b`,
264
248
] ,
265
249
} ,
266
250
{
267
- title : "Generic block" ,
268
251
code : `/*eslint no-undef:off*/
269
252
/*eslint-disable*/
270
- var a = b` ,
271
- output : `/*eslint no-undef:off*/
272
-
273
253
var a = b` ,
274
254
errors : [
275
255
{
@@ -283,29 +263,8 @@ var a = b`,
283
263
] ,
284
264
} ,
285
265
{
286
- title : "Replaces multi-line block comments with a newline" ,
287
- code : `foo/* eslint-disable
288
- */ bar` ,
289
- output : `foo
290
- bar` ,
291
- errors : [
292
- {
293
- message :
294
- "ESLint rules are disabled but never reported." ,
295
- line : 1 ,
296
- column : 4 ,
297
- endLine : 2 ,
298
- endColumn : 3 ,
299
- } ,
300
- ] ,
301
- } ,
302
- {
303
- title : "Specific block" ,
304
266
code : `/*eslint no-undef:off*/
305
267
/*eslint-disable no-undef*/
306
- var a = b` ,
307
- output : `/*eslint no-undef:off*/
308
-
309
268
var a = b` ,
310
269
errors : [
311
270
{
@@ -319,7 +278,6 @@ var a = b`,
319
278
] ,
320
279
} ,
321
280
{
322
- title : "Multiple block" ,
323
281
code : `/*eslint no-undef:off, no-unused-vars:off*/
324
282
/*eslint-disable no-undef,no-unused-vars*/
325
283
var a = b` ,
@@ -343,13 +301,8 @@ var a = b`,
343
301
] ,
344
302
} ,
345
303
{
346
- title : "Generic block with enable after" ,
347
304
code : `/*eslint no-undef:off*/
348
305
/*eslint-disable*/
349
- var a = b
350
- /*eslint-enable*/` ,
351
- output : `/*eslint no-undef:off*/
352
-
353
306
var a = b
354
307
/*eslint-enable*/` ,
355
308
errors : [
@@ -364,13 +317,8 @@ var a = b
364
317
] ,
365
318
} ,
366
319
{
367
- title : "Specific block with enable after" ,
368
320
code : `/*eslint no-undef:off*/
369
321
/*eslint-disable no-undef*/
370
- var a = b
371
- /*eslint-enable*/` ,
372
- output : `/*eslint no-undef:off*/
373
-
374
322
var a = b
375
323
/*eslint-enable*/` ,
376
324
errors : [
@@ -385,7 +333,6 @@ var a = b
385
333
] ,
386
334
} ,
387
335
{
388
- title : "Multiple block with enable after" ,
389
336
code : `/*eslint no-undef:off, no-unused-vars:off*/
390
337
/*eslint-disable no-undef,no-unused-vars*/
391
338
var a = b
@@ -410,13 +357,8 @@ var a = b
410
357
] ,
411
358
} ,
412
359
{
413
- title : "Generic block disable with no error inside" ,
414
360
code : `/*eslint no-undef:error*/
415
361
/*eslint-disable*/
416
- /*eslint-enable*/
417
- var a = b//eslint-disable-line no-undef` ,
418
- output : `/*eslint no-undef:error*/
419
-
420
362
/*eslint-enable*/
421
363
var a = b//eslint-disable-line no-undef` ,
422
364
errors : [
@@ -431,13 +373,8 @@ var a = b//eslint-disable-line no-undef`,
431
373
] ,
432
374
} ,
433
375
{
434
- title : "Specific block disable with no error inside" ,
435
376
code : `/*eslint no-undef:error*/
436
377
/*eslint-disable no-undef*/
437
- /*eslint-enable no-undef*/
438
- var a = b//eslint-disable-line no-undef` ,
439
- output : `/*eslint no-undef:error*/
440
-
441
378
/*eslint-enable no-undef*/
442
379
var a = b//eslint-disable-line no-undef` ,
443
380
errors : [
@@ -452,7 +389,6 @@ var a = b//eslint-disable-line no-undef`,
452
389
] ,
453
390
} ,
454
391
{
455
- title : "Multiple specific block disable with no error inside" ,
456
392
code : `/*eslint no-undef:error, no-unused-vars:error*/
457
393
/*eslint-disable no-undef,no-unused-vars*/
458
394
/*eslint-enable no-undef*/
@@ -469,8 +405,6 @@ var a = b//eslint-disable-line no-undef`,
469
405
] ,
470
406
} ,
471
407
{
472
- title :
473
- "Multiple specific block disable with only one error inside" ,
474
408
code : `/*eslint no-undef:error, no-unused-vars:error*/
475
409
/*eslint-disable
476
410
no-undef,
@@ -490,10 +424,8 @@ var a = b
490
424
] ,
491
425
} ,
492
426
{
493
- title : "Specific block disable at end of input" ,
494
427
code :
495
428
"/* eslint new-parens:error*/ /*eslint-disable new-parens*/" ,
496
- output : "/* eslint new-parens:error*/ " ,
497
429
errors : [
498
430
{
499
431
message :
@@ -506,11 +438,8 @@ var a = b
506
438
] ,
507
439
} ,
508
440
{
509
- title : "Generic same line with rule off" ,
510
441
code : `/*eslint no-undef:off*/
511
442
var a = b //eslint-disable-line` ,
512
- output : `/*eslint no-undef:off*/
513
- var a = b ` ,
514
443
errors : [
515
444
{
516
445
message :
@@ -528,11 +457,8 @@ var a = b `,
528
457
reportUnusedDisableDirectives : true ,
529
458
} ,
530
459
{
531
- title : "Specific same line with rule off" ,
532
460
code : `/*eslint no-undef:off*/
533
461
var a = b //eslint-disable-line no-undef` ,
534
- output : `/*eslint no-undef:off*/
535
- var a = b ` ,
536
462
errors : [
537
463
{
538
464
message :
@@ -550,8 +476,8 @@ var a = b `,
550
476
reportUnusedDisableDirectives : true ,
551
477
} ,
552
478
479
+ // Don't crash even if the source code has a parse error.
553
480
{
554
- title : "Don't crash even if the source code has a parse error" ,
555
481
code :
556
482
"/*eslint no-undef:error*/\nvar a = b c //eslint-disable-line no-undef" ,
557
483
errors : [
@@ -561,50 +487,24 @@ var a = b `,
561
487
] ,
562
488
} ,
563
489
] ) {
564
- it ( testCase . title || testCase . code , ( ) =>
565
- runESLint (
566
- testCase . code ,
567
- testCase . reportUnusedDisableDirectives
568
- ) . then ( actualMessages => {
569
- assert . strictEqual (
570
- actualMessages . length ,
571
- testCase . errors . length
572
- )
573
-
574
- let actualOutput = testCase . code
575
-
576
- for ( let i = 0 ; i < testCase . errors . length ; ++ i ) {
577
- const actual = actualMessages [ i ]
578
- const expected = testCase . errors [ i ]
579
-
580
- // We need to duplicate the simple logic in ESLint's
581
- // source-code-fixer.js to apply the fix. If we run
582
- // ESLint with --fix-dry-run, it won't report any
583
- // errors since it would have fixed them.
584
- if ( actual . fix ) {
585
- actualOutput =
586
- actualOutput . slice ( 0 , actual . fix . range [ 0 ] ) +
587
- actual . fix . text +
588
- actualOutput . slice ( actual . fix . range [ 1 ] )
589
- }
490
+ it ( code , ( ) =>
491
+ runESLint ( code , reportUnusedDisableDirectives ) . then (
492
+ actualMessages => {
493
+ assert . strictEqual ( actualMessages . length , errors . length )
494
+ for ( let i = 0 ; i < errors . length ; ++ i ) {
495
+ const actual = actualMessages [ i ]
496
+ const expected = errors [ i ]
590
497
591
- for ( const key of Object . keys ( expected ) ) {
592
- assert . strictEqual (
593
- actual [ key ] ,
594
- expected [ key ] ,
595
- `'${ key } ' is not expected.`
596
- )
498
+ for ( const key of Object . keys ( expected ) ) {
499
+ assert . strictEqual (
500
+ actual [ key ] ,
501
+ expected [ key ] ,
502
+ `'${ key } ' is not expected.`
503
+ )
504
+ }
597
505
}
598
506
}
599
-
600
- if ( testCase . output ) {
601
- assert . strictEqual (
602
- actualOutput ,
603
- testCase . output ,
604
- "output is not expected"
605
- )
606
- }
607
- } )
507
+ )
608
508
)
609
509
}
610
510
} )
0 commit comments