eslint-plugin-jest 27.2.1 → 27.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +1 -1
  2. package/docs/rules/no-alias-methods.md +1 -1
  3. package/docs/rules/no-hooks.md +1 -1
  4. package/docs/rules/no-large-snapshots.md +4 -0
  5. package/docs/rules/require-hook.md +2 -6
  6. package/docs/rules/valid-expect.md +2 -2
  7. package/lib/index.js +2 -0
  8. package/lib/processors/__tests__/snapshot-processor.test.js +36 -0
  9. package/lib/rules/__tests__/consistent-test-it.test.js +921 -0
  10. package/lib/rules/__tests__/expect-expect.test.js +347 -0
  11. package/lib/rules/__tests__/fixtures/class.ts +13 -0
  12. package/lib/rules/__tests__/fixtures/file.ts +0 -0
  13. package/lib/rules/__tests__/fixtures/foo.ts +1 -0
  14. package/lib/rules/__tests__/fixtures/indent/indent-invalid-fixture-1.js +530 -0
  15. package/lib/rules/__tests__/fixtures/indent/indent-valid-fixture-1.js +530 -0
  16. package/lib/rules/__tests__/fixtures/react.tsx +0 -0
  17. package/lib/rules/__tests__/fixtures/tsconfig-withmeta.json +6 -0
  18. package/lib/rules/__tests__/fixtures/tsconfig.json +16 -0
  19. package/lib/rules/__tests__/fixtures/unstrict/file.ts +0 -0
  20. package/lib/rules/__tests__/fixtures/unstrict/react.tsx +0 -0
  21. package/lib/rules/__tests__/fixtures/unstrict/tsconfig.json +15 -0
  22. package/lib/rules/__tests__/max-expects.test.js +330 -0
  23. package/lib/rules/__tests__/max-nested-describe.test.js +247 -0
  24. package/lib/rules/__tests__/no-alias-methods.test.js +190 -0
  25. package/lib/rules/__tests__/no-commented-out-tests.test.js +213 -0
  26. package/lib/rules/__tests__/no-conditional-expect.test.js +696 -0
  27. package/lib/rules/__tests__/no-conditional-in-test.test.js +777 -0
  28. package/lib/rules/__tests__/no-deprecated-functions.test.js +119 -0
  29. package/lib/rules/__tests__/no-disabled-tests.test.js +241 -0
  30. package/lib/rules/__tests__/no-done-callback.test.js +424 -0
  31. package/lib/rules/__tests__/no-duplicate-hooks.test.js +469 -0
  32. package/lib/rules/__tests__/no-export.test.js +107 -0
  33. package/lib/rules/__tests__/no-focused-tests.test.js +373 -0
  34. package/lib/rules/__tests__/no-hooks.test.js +90 -0
  35. package/lib/rules/__tests__/no-identical-title.test.js +270 -0
  36. package/lib/rules/__tests__/no-if.test.js +787 -0
  37. package/lib/rules/__tests__/no-interpolation-in-snapshots.test.js +58 -0
  38. package/lib/rules/__tests__/no-jasmine-globals.test.js +206 -0
  39. package/lib/rules/__tests__/no-large-snapshots.test.js +237 -0
  40. package/lib/rules/__tests__/no-mocks-import.test.js +73 -0
  41. package/lib/rules/__tests__/no-restricted-jest-methods.test.js +103 -0
  42. package/lib/rules/__tests__/no-restricted-matchers.test.js +244 -0
  43. package/lib/rules/__tests__/no-standalone-expect.test.js +230 -0
  44. package/lib/rules/__tests__/no-test-prefixes.test.js +206 -0
  45. package/lib/rules/__tests__/no-test-return-statement.test.js +122 -0
  46. package/lib/rules/__tests__/no-untyped-mock-factory.test.js +149 -0
  47. package/lib/rules/__tests__/prefer-called-with.test.js +40 -0
  48. package/lib/rules/__tests__/prefer-comparison-matcher.test.js +200 -0
  49. package/lib/rules/__tests__/prefer-each.test.js +295 -0
  50. package/lib/rules/__tests__/prefer-equality-matcher.test.js +184 -0
  51. package/lib/rules/__tests__/prefer-expect-assertions.test.js +1437 -0
  52. package/lib/rules/__tests__/prefer-expect-resolves.test.js +96 -0
  53. package/lib/rules/__tests__/prefer-hooks-in-order.test.js +678 -0
  54. package/lib/rules/__tests__/prefer-hooks-on-top.test.js +218 -0
  55. package/lib/rules/__tests__/prefer-lowercase-title.test.js +619 -0
  56. package/lib/rules/__tests__/prefer-mock-promise-shorthand.test.js +360 -0
  57. package/lib/rules/__tests__/prefer-snapshot-hint.test.js +784 -0
  58. package/lib/rules/__tests__/prefer-spy-on.test.js +100 -0
  59. package/lib/rules/__tests__/prefer-strict-equal.test.js +46 -0
  60. package/lib/rules/__tests__/prefer-to-be.test.js +438 -0
  61. package/lib/rules/__tests__/prefer-to-contain.test.js +301 -0
  62. package/lib/rules/__tests__/prefer-to-have-length.test.js +99 -0
  63. package/lib/rules/__tests__/prefer-todo.test.js +78 -0
  64. package/lib/rules/__tests__/require-hook.test.js +403 -0
  65. package/lib/rules/__tests__/require-to-throw-message.test.js +108 -0
  66. package/lib/rules/__tests__/require-top-level-describe.test.js +236 -0
  67. package/lib/rules/__tests__/test-utils.js +11 -0
  68. package/lib/rules/__tests__/unbound-method.test.js +518 -0
  69. package/lib/rules/__tests__/valid-describe-callback.test.js +305 -0
  70. package/lib/rules/__tests__/valid-expect-in-promise.test.js +1583 -0
  71. package/lib/rules/__tests__/valid-expect.test.js +894 -0
  72. package/lib/rules/__tests__/valid-title.test.js +1147 -0
  73. package/lib/rules/utils/__tests__/detectJestVersion.test.js +221 -0
  74. package/lib/rules/utils/__tests__/parseJestFnCall.test.js +809 -0
  75. package/lib/rules/utils/accessors.js +4 -0
  76. package/lib/rules/utils/misc.js +36 -20
  77. package/package.json +12 -8
@@ -0,0 +1,530 @@
1
+ if (a) {
2
+ var b = c;
3
+ var d = e
4
+ * f;
5
+ var e = f; // <-
6
+ // ->
7
+ function g() {
8
+ if (h) {
9
+ var i = j;
10
+ } // <-
11
+ } // <-
12
+
13
+ while (k) l++;
14
+ while (m) {
15
+ n--; // ->
16
+ } // <-
17
+
18
+ do {
19
+ o = p +
20
+ q; // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS
21
+ o = p +
22
+ q;
23
+ } while(r); // <-
24
+
25
+ for (var s in t) {
26
+ u++;
27
+ }
28
+
29
+ for (;;) {
30
+ v++; // <-
31
+ }
32
+
33
+ if ( w ) {
34
+ x++;
35
+ } else if (y) {
36
+ z++; // <-
37
+ aa++;
38
+ } else { // <-
39
+ bb++; // ->
40
+ } // ->
41
+ }
42
+
43
+ /**/var b; // NO ERROR: single line multi-line comments followed by code is OK
44
+ /*
45
+ *
46
+ */ var b; // NO ERROR: multi-line comments followed by code is OK
47
+
48
+ var arr = [
49
+ a,
50
+ b,
51
+ c,
52
+ function (){
53
+ d
54
+ }, // <-
55
+ {},
56
+ {
57
+ a: b,
58
+ c: d,
59
+ d: e
60
+ },
61
+ [
62
+ f,
63
+ g,
64
+ h,
65
+ i
66
+ ],
67
+ [j]
68
+ ];
69
+
70
+ var obj = {
71
+ a: {
72
+ b: {
73
+ c: d,
74
+ e: f,
75
+ g: h +
76
+ i // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS
77
+ }
78
+ },
79
+ g: [
80
+ h,
81
+ i,
82
+ j,
83
+ k
84
+ ]
85
+ };
86
+
87
+ var arrObject = {a:[
88
+ a,
89
+ b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE
90
+ c
91
+ ]};
92
+
93
+ var objArray = [{
94
+ a: b,
95
+ b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE
96
+ c: d
97
+ }];
98
+
99
+ var arrArray = [[
100
+ a,
101
+ b, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE
102
+ c
103
+ ]];
104
+
105
+ var objObject = {a:{
106
+ a: b,
107
+ b: c, // NO ERROR: INDENT ONCE WHEN MULTIPLE INDENTED EXPRESSIONS ARE ON SAME LINE
108
+ c: d
109
+ }};
110
+
111
+
112
+ switch (a) {
113
+ case 'a':
114
+ var a = 'b'; // ->
115
+ break;
116
+ case 'b':
117
+ var a = 'b';
118
+ break;
119
+ case 'c':
120
+ var a = 'b'; // <-
121
+ break;
122
+ case 'd':
123
+ var a = 'b';
124
+ break; // ->
125
+ case 'f':
126
+ var a = 'b';
127
+ break;
128
+ case 'g': {
129
+ var a = 'b';
130
+ break;
131
+ }
132
+ case 'z':
133
+ default:
134
+ break; // <-
135
+ }
136
+
137
+ a.b('hi')
138
+ .c(a.b()) // <-
139
+ .d(); // <-
140
+
141
+ if ( a ) {
142
+ if ( b ) {
143
+ d.e(f) // ->
144
+ .g() // ->
145
+ .h(); // ->
146
+
147
+ i.j(m)
148
+ .k() // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS
149
+ .l(); // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS
150
+
151
+ n.o(p) // <-
152
+ .q() // <-
153
+ .r(); // <-
154
+ }
155
+ }
156
+
157
+ var a = b,
158
+ c = function () {
159
+ h = i; // ->
160
+ j = k;
161
+ l = m; // <-
162
+ },
163
+ e = {
164
+ f: g,
165
+ n: o,
166
+ p: q
167
+ },
168
+ r = [
169
+ s,
170
+ t,
171
+ u
172
+ ];
173
+
174
+ var a = function () {
175
+ b = c; // ->
176
+ d = e;
177
+ f = g; // <-
178
+ };
179
+
180
+ function c(a, b) {
181
+ if (a || (a &&
182
+ b)) { // NO ERROR: DON'T VALIDATE MULTILINE STATEMENTS
183
+ return d;
184
+ }
185
+ }
186
+
187
+ if ( a
188
+ || b ) {
189
+ var x; // ->
190
+ var c,
191
+ d = function(a,
192
+ b) { // <-
193
+ a; // ->
194
+ b;
195
+ c; // <-
196
+ }
197
+ }
198
+
199
+
200
+ a({
201
+ d: 1
202
+ });
203
+
204
+ a(
205
+ 1
206
+ );
207
+
208
+ a(
209
+ b({
210
+ d: 1
211
+ })
212
+ );
213
+
214
+ a(
215
+ b(
216
+ c({
217
+ d: 1,
218
+ e: 1,
219
+ f: 1
220
+ })
221
+ )
222
+ );
223
+
224
+ a({ d: 1 });
225
+
226
+ aa(
227
+ b({ // NO ERROR: CallExpression args not linted by default
228
+ c: d, // ->
229
+ e: f,
230
+ f: g
231
+ }) // ->
232
+ );
233
+
234
+ aaaaaa(
235
+ b,
236
+ c,
237
+ {
238
+ d: a
239
+ }
240
+ );
241
+
242
+ a(b, c,
243
+ d, e,
244
+ f, g // NO ERROR: alignment of arguments of callExpression not checked
245
+ ); // <-
246
+
247
+ a(
248
+ ); // <-
249
+
250
+ aaaaaa(
251
+ b,
252
+ c, {
253
+ d: a
254
+ }, {
255
+ e: f
256
+ }
257
+ );
258
+
259
+ a.b()
260
+ .c(function(){
261
+ var a;
262
+ }).d.e;
263
+
264
+ if (a == 'b') {
265
+ if (c && d) e = f
266
+ else g('h').i('j')
267
+ }
268
+
269
+ a = function (b, c) {
270
+ return a(function () {
271
+ var d = e
272
+ var f = g
273
+ var h = i
274
+
275
+ if (!j) k('l', (m = n))
276
+ if (o) p
277
+ else if (q) r
278
+ })
279
+ }
280
+
281
+ var a = function() {
282
+ "b"
283
+ .replace(/a/, "a")
284
+ .replace(/bc?/, function(e) {
285
+ return "b" + (e.f === 2 ? "c" : "f");
286
+ })
287
+ .replace(/d/, "d");
288
+ };
289
+
290
+ $(b)
291
+ .on('a', 'b', function() { $(c).e('f'); })
292
+ .on('g', 'h', function() { $(i).j('k'); });
293
+
294
+ a
295
+ .b('c',
296
+ 'd'); // NO ERROR: CallExpression args not linted by default
297
+
298
+ a
299
+ .b('c', [ 'd', function(e) {
300
+ e++;
301
+ }]);
302
+
303
+ var a = function() {
304
+ a++;
305
+ b++; // <-
306
+ c++; // <-
307
+ },
308
+ b;
309
+
310
+ var b = [
311
+ a,
312
+ b,
313
+ c
314
+ ],
315
+ c;
316
+
317
+ var c = {
318
+ a: 1,
319
+ b: 2,
320
+ c: 3
321
+ },
322
+ d;
323
+
324
+ // holes in arrays indentation
325
+ x = [
326
+ 1,
327
+ 1,
328
+ 1,
329
+ 1,
330
+ 1,
331
+ 1,
332
+ 1,
333
+ 1,
334
+ 1,
335
+ 1
336
+ ];
337
+
338
+ try {
339
+ a++;
340
+ b++; // <-
341
+ c++; // ->
342
+ } catch (d) {
343
+ e++;
344
+ f++; // <-
345
+ g++; // ->
346
+ } finally {
347
+ h++;
348
+ i++; // <-
349
+ j++; // ->
350
+ }
351
+
352
+ if (array.some(function(){
353
+ return true;
354
+ })) {
355
+ a++; // ->
356
+ b++;
357
+ c++; // <-
358
+ }
359
+
360
+ var a = b.c(function() {
361
+ d++;
362
+ }),
363
+ e;
364
+
365
+ switch (true) {
366
+ case (a
367
+ && b):
368
+ case (c // ->
369
+ && d):
370
+ case (e // <-
371
+ && f):
372
+ case (g
373
+ && h):
374
+ var i = j; // <-
375
+ var k = l;
376
+ var m = n; // ->
377
+ }
378
+
379
+ if (a) {
380
+ b();
381
+ }
382
+ else {
383
+ c(); // ->
384
+ d();
385
+ e(); // <-
386
+ }
387
+
388
+ if (a) b();
389
+ else {
390
+ c(); // ->
391
+ d();
392
+ e(); // <-
393
+ }
394
+
395
+ if (a) {
396
+ b();
397
+ } else c();
398
+
399
+ if (a) {
400
+ b();
401
+ }
402
+ else c();
403
+
404
+ a();
405
+
406
+ if( "very very long multi line" +
407
+ "with weird indentation" ) {
408
+ b();
409
+ a(); // ->
410
+ c(); // <-
411
+ }
412
+
413
+ a( "very very long multi line" +
414
+ "with weird indentation", function() {
415
+ b();
416
+ a(); // ->
417
+ c(); // <-
418
+ }); // <-
419
+
420
+ a = function(content, dom) {
421
+ b();
422
+ c(); // <-
423
+ d(); // ->
424
+ };
425
+
426
+ a = function(content, dom) {
427
+ b();
428
+ c(); // <-
429
+ d(); // ->
430
+ };
431
+
432
+ a = function(content, dom) {
433
+ b(); // ->
434
+ };
435
+
436
+ a = function(content, dom) {
437
+ b(); // ->
438
+ };
439
+
440
+ a('This is a terribly long description youll ' +
441
+ 'have to read', function () {
442
+ b(); // <-
443
+ c(); // <-
444
+ }); // <-
445
+
446
+ if (
447
+ array.some(function(){
448
+ return true;
449
+ })
450
+ ) {
451
+ a++; // ->
452
+ b++;
453
+ c++; // <-
454
+ }
455
+
456
+ function c(d) {
457
+ return {
458
+ e: function(f, g) {
459
+ }
460
+ };
461
+ }
462
+
463
+ function a(b) {
464
+ switch(x) {
465
+ case 1:
466
+ if (foo) {
467
+ return 5;
468
+ }
469
+ }
470
+ }
471
+
472
+ function a(b) {
473
+ switch(x) {
474
+ case 1:
475
+ c;
476
+ }
477
+ }
478
+
479
+ function a(b) {
480
+ switch(x) {
481
+ case 1: c;
482
+ }
483
+ }
484
+
485
+ function test() {
486
+ var a = 1;
487
+ {
488
+ a();
489
+ }
490
+ }
491
+
492
+ {
493
+ a();
494
+ }
495
+
496
+ function a(b) {
497
+ switch(x) {
498
+ case 1:
499
+ { // <-
500
+ a(); // ->
501
+ }
502
+ break;
503
+ default:
504
+ {
505
+ b();
506
+ }
507
+ }
508
+ }
509
+
510
+ switch (a) {
511
+ default:
512
+ if (b)
513
+ c();
514
+ }
515
+
516
+ function test(x) {
517
+ switch (x) {
518
+ case 1:
519
+ return function() {
520
+ var a = 5;
521
+ return a;
522
+ };
523
+ }
524
+ }
525
+
526
+ switch (a) {
527
+ default:
528
+ if (b)
529
+ c();
530
+ }
File without changes
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "emitDecoratorMetadata": true,
5
+ }
6
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsx": "preserve",
4
+ "target": "es5",
5
+ "module": "commonjs",
6
+ "strict": true,
7
+ "esModuleInterop": true,
8
+ "lib": ["es2015", "es2017", "esnext"],
9
+ "experimentalDecorators": true
10
+ },
11
+ "files": ["estree.ts"],
12
+ "include": [
13
+ "file.ts",
14
+ "react.tsx"
15
+ ]
16
+ }
File without changes
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "jsx": "preserve",
4
+ "target": "es5",
5
+ "module": "commonjs",
6
+ "strict": false,
7
+ "esModuleInterop": true,
8
+ "lib": ["es2015", "es2017", "esnext"],
9
+ "experimentalDecorators": true
10
+ },
11
+ "include": [
12
+ "file.ts",
13
+ "react.tsx"
14
+ ]
15
+ }