eslint-plugin-jest 27.2.2 → 27.2.3

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 (69) hide show
  1. package/lib/rules/no-deprecated-functions.js +2 -2
  2. package/package.json +6 -6
  3. package/lib/processors/__tests__/snapshot-processor.test.js +0 -36
  4. package/lib/rules/__tests__/consistent-test-it.test.js +0 -921
  5. package/lib/rules/__tests__/expect-expect.test.js +0 -347
  6. package/lib/rules/__tests__/fixtures/class.ts +0 -13
  7. package/lib/rules/__tests__/fixtures/file.ts +0 -0
  8. package/lib/rules/__tests__/fixtures/foo.ts +0 -1
  9. package/lib/rules/__tests__/fixtures/indent/indent-invalid-fixture-1.js +0 -530
  10. package/lib/rules/__tests__/fixtures/indent/indent-valid-fixture-1.js +0 -530
  11. package/lib/rules/__tests__/fixtures/react.tsx +0 -0
  12. package/lib/rules/__tests__/fixtures/tsconfig-withmeta.json +0 -6
  13. package/lib/rules/__tests__/fixtures/tsconfig.json +0 -16
  14. package/lib/rules/__tests__/fixtures/unstrict/file.ts +0 -0
  15. package/lib/rules/__tests__/fixtures/unstrict/react.tsx +0 -0
  16. package/lib/rules/__tests__/fixtures/unstrict/tsconfig.json +0 -15
  17. package/lib/rules/__tests__/max-expects.test.js +0 -330
  18. package/lib/rules/__tests__/max-nested-describe.test.js +0 -247
  19. package/lib/rules/__tests__/no-alias-methods.test.js +0 -190
  20. package/lib/rules/__tests__/no-commented-out-tests.test.js +0 -213
  21. package/lib/rules/__tests__/no-conditional-expect.test.js +0 -696
  22. package/lib/rules/__tests__/no-conditional-in-test.test.js +0 -777
  23. package/lib/rules/__tests__/no-deprecated-functions.test.js +0 -119
  24. package/lib/rules/__tests__/no-disabled-tests.test.js +0 -241
  25. package/lib/rules/__tests__/no-done-callback.test.js +0 -424
  26. package/lib/rules/__tests__/no-duplicate-hooks.test.js +0 -469
  27. package/lib/rules/__tests__/no-export.test.js +0 -107
  28. package/lib/rules/__tests__/no-focused-tests.test.js +0 -373
  29. package/lib/rules/__tests__/no-hooks.test.js +0 -90
  30. package/lib/rules/__tests__/no-identical-title.test.js +0 -270
  31. package/lib/rules/__tests__/no-if.test.js +0 -787
  32. package/lib/rules/__tests__/no-interpolation-in-snapshots.test.js +0 -58
  33. package/lib/rules/__tests__/no-jasmine-globals.test.js +0 -206
  34. package/lib/rules/__tests__/no-large-snapshots.test.js +0 -237
  35. package/lib/rules/__tests__/no-mocks-import.test.js +0 -73
  36. package/lib/rules/__tests__/no-restricted-jest-methods.test.js +0 -103
  37. package/lib/rules/__tests__/no-restricted-matchers.test.js +0 -244
  38. package/lib/rules/__tests__/no-standalone-expect.test.js +0 -230
  39. package/lib/rules/__tests__/no-test-prefixes.test.js +0 -206
  40. package/lib/rules/__tests__/no-test-return-statement.test.js +0 -122
  41. package/lib/rules/__tests__/no-untyped-mock-factory.test.js +0 -149
  42. package/lib/rules/__tests__/prefer-called-with.test.js +0 -40
  43. package/lib/rules/__tests__/prefer-comparison-matcher.test.js +0 -200
  44. package/lib/rules/__tests__/prefer-each.test.js +0 -295
  45. package/lib/rules/__tests__/prefer-equality-matcher.test.js +0 -184
  46. package/lib/rules/__tests__/prefer-expect-assertions.test.js +0 -1437
  47. package/lib/rules/__tests__/prefer-expect-resolves.test.js +0 -96
  48. package/lib/rules/__tests__/prefer-hooks-in-order.test.js +0 -678
  49. package/lib/rules/__tests__/prefer-hooks-on-top.test.js +0 -218
  50. package/lib/rules/__tests__/prefer-lowercase-title.test.js +0 -619
  51. package/lib/rules/__tests__/prefer-mock-promise-shorthand.test.js +0 -360
  52. package/lib/rules/__tests__/prefer-snapshot-hint.test.js +0 -784
  53. package/lib/rules/__tests__/prefer-spy-on.test.js +0 -100
  54. package/lib/rules/__tests__/prefer-strict-equal.test.js +0 -46
  55. package/lib/rules/__tests__/prefer-to-be.test.js +0 -438
  56. package/lib/rules/__tests__/prefer-to-contain.test.js +0 -301
  57. package/lib/rules/__tests__/prefer-to-have-length.test.js +0 -99
  58. package/lib/rules/__tests__/prefer-todo.test.js +0 -78
  59. package/lib/rules/__tests__/require-hook.test.js +0 -403
  60. package/lib/rules/__tests__/require-to-throw-message.test.js +0 -108
  61. package/lib/rules/__tests__/require-top-level-describe.test.js +0 -236
  62. package/lib/rules/__tests__/test-utils.js +0 -11
  63. package/lib/rules/__tests__/unbound-method.test.js +0 -518
  64. package/lib/rules/__tests__/valid-describe-callback.test.js +0 -305
  65. package/lib/rules/__tests__/valid-expect-in-promise.test.js +0 -1583
  66. package/lib/rules/__tests__/valid-expect.test.js +0 -894
  67. package/lib/rules/__tests__/valid-title.test.js +0 -1147
  68. package/lib/rules/utils/__tests__/detectJestVersion.test.js +0 -221
  69. package/lib/rules/utils/__tests__/parseJestFnCall.test.js +0 -809
@@ -1,809 +0,0 @@
1
- "use strict";
2
-
3
- var _utils = require("@typescript-eslint/utils");
4
- var _dedent = _interopRequireDefault(require("dedent"));
5
- var _testUtils = require("../../__tests__/test-utils");
6
- var _utils2 = require("../../utils");
7
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
- const findESLintVersion = () => {
9
- const eslintPath = require.resolve('eslint/package.json');
10
- const eslintPackageJson =
11
- // eslint-disable-next-line @typescript-eslint/no-require-imports
12
- require(eslintPath);
13
- if (!eslintPackageJson.version) {
14
- throw new Error('eslint package.json does not have a version!');
15
- }
16
- const [majorVersion] = eslintPackageJson.version.split('.');
17
- return parseInt(majorVersion, 10);
18
- };
19
- const eslintVersion = findESLintVersion();
20
- const ruleTester = new _utils.TSESLint.RuleTester({
21
- parser: _testUtils.espreeParser,
22
- parserOptions: {
23
- ecmaVersion: 2015
24
- }
25
- });
26
- const isNode = obj => {
27
- if (typeof obj === 'object' && obj !== null) {
28
- return ['type', 'loc', 'range', 'parent'].every(p => p in obj);
29
- }
30
- return false;
31
- };
32
- const rule = (0, _utils2.createRule)({
33
- name: __filename,
34
- meta: {
35
- docs: {
36
- category: 'Possible Errors',
37
- description: 'Fake rule for testing parseJestFnCall',
38
- recommended: false
39
- },
40
- messages: {
41
- details: '{{ data }}'
42
- },
43
- schema: [],
44
- type: 'problem'
45
- },
46
- defaultOptions: [],
47
- create: context => ({
48
- CallExpression(node) {
49
- const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
50
- if (jestFnCall) {
51
- const sorted = {
52
- // ...jestFnCall,
53
- name: jestFnCall.name,
54
- type: jestFnCall.type,
55
- head: jestFnCall.head,
56
- members: jestFnCall.members
57
- };
58
- context.report({
59
- messageId: 'details',
60
- node,
61
- data: {
62
- data: JSON.stringify(sorted, (_key, value) => {
63
- if (isNode(value)) {
64
- if ((0, _utils2.isSupportedAccessor)(value)) {
65
- return (0, _utils2.getAccessorValue)(value);
66
- }
67
- return undefined;
68
- }
69
- return value;
70
- })
71
- }
72
- });
73
- }
74
- }
75
- })
76
- });
77
- // const sortParsedJestFnCallResults = ()
78
-
79
- const expectedParsedJestFnCallResultData = result => ({
80
- data: JSON.stringify({
81
- name: result.name,
82
- type: result.type,
83
- head: result.head,
84
- members: result.members
85
- })
86
- });
87
- ruleTester.run('nonexistent methods', rule, {
88
- valid: ['describe.something()', 'describe.me()', 'test.me()', 'it.fails()', 'context()', 'context.each``()', 'context.each()', 'describe.context()', 'describe.concurrent()()', 'describe.concurrent``()', 'describe.every``()', '/regex/.test()', '"something".describe()', '[].describe()', 'new describe().only()', '``.test()', 'test.only``()', 'test``.only()'],
89
- invalid: []
90
- });
91
- ruleTester.run('expect', rule, {
92
- valid: [{
93
- code: (0, _dedent.default)`
94
- import { expect } from './test-utils';
95
-
96
- expect(x).toBe(y);
97
- `,
98
- parserOptions: {
99
- sourceType: 'module'
100
- }
101
- }, {
102
- code: (0, _dedent.default)`
103
- import { expect } from '@jest/globals';
104
-
105
- expect(x).not.resolves.toBe(x);
106
- `,
107
- parserOptions: {
108
- sourceType: 'module'
109
- }
110
- },
111
- // {
112
- // code: dedent`
113
- // import { expect } from '@jest/globals';
114
- //
115
- // expect(x).not().toBe(x);
116
- // `,
117
- // parserOptions: { sourceType: 'module' },
118
- // },
119
- {
120
- code: (0, _dedent.default)`
121
- import { expect } from '@jest/globals';
122
-
123
- expect(x).is.toBe(x);
124
- `,
125
- parserOptions: {
126
- sourceType: 'module'
127
- }
128
- }, {
129
- code: (0, _dedent.default)`
130
- import { expect } from '@jest/globals';
131
-
132
- expect;
133
- expect(x);
134
- expect(x).toBe;
135
- expect(x).not.toBe;
136
- //expect(x).toBe(x).not();
137
- `,
138
- parserOptions: {
139
- sourceType: 'module'
140
- }
141
- }],
142
- invalid: [{
143
- code: 'expect(x).toBe(y);',
144
- parserOptions: {
145
- sourceType: 'script'
146
- },
147
- errors: [{
148
- messageId: 'details',
149
- data: expectedParsedJestFnCallResultData({
150
- name: 'expect',
151
- type: 'expect',
152
- head: {
153
- original: null,
154
- local: 'expect',
155
- type: 'global',
156
- node: 'expect'
157
- },
158
- members: ['toBe']
159
- }),
160
- column: 1,
161
- line: 1
162
- }]
163
- }, {
164
- code: (0, _dedent.default)`
165
- import { expect } from '@jest/globals';
166
-
167
- expect.assertions();
168
- `,
169
- parserOptions: {
170
- sourceType: 'module'
171
- },
172
- errors: [{
173
- messageId: 'details',
174
- data: expectedParsedJestFnCallResultData({
175
- name: 'expect',
176
- type: 'expect',
177
- head: {
178
- original: 'expect',
179
- local: 'expect',
180
- type: 'import',
181
- node: 'expect'
182
- },
183
- members: ['assertions']
184
- }),
185
- column: 1,
186
- line: 3
187
- }]
188
- }, {
189
- code: (0, _dedent.default)`
190
- import { expect } from '@jest/globals';
191
-
192
- expect(x).toBe(y);
193
- `,
194
- parserOptions: {
195
- sourceType: 'module'
196
- },
197
- errors: [{
198
- messageId: 'details',
199
- data: expectedParsedJestFnCallResultData({
200
- name: 'expect',
201
- type: 'expect',
202
- head: {
203
- original: 'expect',
204
- local: 'expect',
205
- type: 'import',
206
- node: 'expect'
207
- },
208
- members: ['toBe']
209
- }),
210
- column: 1,
211
- line: 3
212
- }]
213
- }, {
214
- code: (0, _dedent.default)`
215
- import { expect } from '@jest/globals';
216
-
217
- expect(x).not(y);
218
- `,
219
- parserOptions: {
220
- sourceType: 'module'
221
- },
222
- errors: [{
223
- messageId: 'details',
224
- data: expectedParsedJestFnCallResultData({
225
- name: 'expect',
226
- type: 'expect',
227
- head: {
228
- original: 'expect',
229
- local: 'expect',
230
- type: 'import',
231
- node: 'expect'
232
- },
233
- members: ['not']
234
- }),
235
- column: 1,
236
- line: 3
237
- }]
238
- }, {
239
- code: (0, _dedent.default)`
240
- import { expect } from '@jest/globals';
241
-
242
- expect(x).not.toBe(y);
243
- `,
244
- parserOptions: {
245
- sourceType: 'module'
246
- },
247
- errors: [{
248
- messageId: 'details',
249
- data: expectedParsedJestFnCallResultData({
250
- name: 'expect',
251
- type: 'expect',
252
- head: {
253
- original: 'expect',
254
- local: 'expect',
255
- type: 'import',
256
- node: 'expect'
257
- },
258
- members: ['not', 'toBe']
259
- }),
260
- column: 1,
261
- line: 3
262
- }]
263
- }, {
264
- code: (0, _dedent.default)`
265
- import { expect } from '@jest/globals';
266
-
267
- expect.assertions();
268
- expect.hasAssertions();
269
- expect.anything();
270
- expect.not.arrayContaining();
271
- `,
272
- parserOptions: {
273
- sourceType: 'module'
274
- },
275
- errors: [{
276
- messageId: 'details',
277
- data: expectedParsedJestFnCallResultData({
278
- name: 'expect',
279
- type: 'expect',
280
- head: {
281
- original: 'expect',
282
- local: 'expect',
283
- type: 'import',
284
- node: 'expect'
285
- },
286
- members: ['assertions']
287
- }),
288
- column: 1,
289
- line: 3
290
- }, {
291
- messageId: 'details',
292
- data: expectedParsedJestFnCallResultData({
293
- name: 'expect',
294
- type: 'expect',
295
- head: {
296
- original: 'expect',
297
- local: 'expect',
298
- type: 'import',
299
- node: 'expect'
300
- },
301
- members: ['hasAssertions']
302
- }),
303
- column: 1,
304
- line: 4
305
- }, {
306
- messageId: 'details',
307
- data: expectedParsedJestFnCallResultData({
308
- name: 'expect',
309
- type: 'expect',
310
- head: {
311
- original: 'expect',
312
- local: 'expect',
313
- type: 'import',
314
- node: 'expect'
315
- },
316
- members: ['anything']
317
- }),
318
- column: 1,
319
- line: 5
320
- }, {
321
- messageId: 'details',
322
- data: expectedParsedJestFnCallResultData({
323
- name: 'expect',
324
- type: 'expect',
325
- head: {
326
- original: 'expect',
327
- local: 'expect',
328
- type: 'import',
329
- node: 'expect'
330
- },
331
- members: ['not', 'arrayContaining']
332
- }),
333
- column: 1,
334
- line: 6
335
- }]
336
- }]
337
- });
338
- ruleTester.run('esm', rule, {
339
- valid: [{
340
- code: (0, _dedent.default)`
341
- import { it } from './test-utils';
342
-
343
- it('is not a jest function', () => {});
344
- `,
345
- parserOptions: {
346
- sourceType: 'module'
347
- }
348
- }, {
349
- code: (0, _dedent.default)`
350
- import { defineFeature, loadFeature } from "jest-cucumber";
351
-
352
- const feature = loadFeature("some/feature");
353
-
354
- defineFeature(feature, (test) => {
355
- test("A scenario", ({ given, when, then }) => {});
356
- });
357
- `,
358
- parserOptions: {
359
- sourceType: 'module'
360
- }
361
- }, {
362
- code: (0, _dedent.default)`
363
- import { describe } from './test-utils';
364
-
365
- describe('a function that is not from jest', () => {});
366
- `,
367
- parserOptions: {
368
- sourceType: 'module'
369
- }
370
- }, {
371
- code: (0, _dedent.default)`
372
- import { fn as it } from './test-utils';
373
-
374
- it('is not a jest function', () => {});
375
- `,
376
- parserOptions: {
377
- sourceType: 'module'
378
- }
379
- }, {
380
- code: (0, _dedent.default)`
381
- import * as jest from '@jest/globals';
382
- const { it } = jest;
383
-
384
- it('is not supported', () => {});
385
- `,
386
- parserOptions: {
387
- sourceType: 'module'
388
- }
389
- }, {
390
- code: (0, _dedent.default)`
391
- import ByDefault from './myfile';
392
-
393
- ByDefault.sayHello();
394
- `,
395
- parserOptions: {
396
- sourceType: 'module'
397
- }
398
- }, {
399
- code: (0, _dedent.default)`
400
- async function doSomething() {
401
- const build = await rollup(config);
402
- build.generate();
403
- }
404
- `,
405
- parserOptions: {
406
- sourceType: 'module',
407
- ecmaVersion: 2017
408
- }
409
- }],
410
- invalid: []
411
- });
412
- if (eslintVersion >= 8) {
413
- ruleTester.run('esm (dynamic)', rule, {
414
- valid: [{
415
- code: (0, _dedent.default)`
416
- const { it } = await import('./test-utils');
417
-
418
- it('is not a jest function', () => {});
419
- `,
420
- parserOptions: {
421
- sourceType: 'module',
422
- ecmaVersion: 2022
423
- }
424
- }, {
425
- code: (0, _dedent.default)`
426
- const { it } = await import(\`./test-utils\`);
427
-
428
- it('is not a jest function', () => {});
429
- `,
430
- parserOptions: {
431
- sourceType: 'module',
432
- ecmaVersion: 2022
433
- }
434
- }],
435
- invalid: [{
436
- code: (0, _dedent.default)`
437
- const { it } = await import("@jest/globals");
438
-
439
- it('is a jest function', () => {});
440
- `,
441
- parserOptions: {
442
- sourceType: 'module',
443
- ecmaVersion: 2022
444
- },
445
- errors: [{
446
- messageId: 'details',
447
- data: expectedParsedJestFnCallResultData({
448
- name: 'it',
449
- type: 'test',
450
- head: {
451
- original: 'it',
452
- local: 'it',
453
- type: 'import',
454
- node: 'it'
455
- },
456
- members: []
457
- }),
458
- column: 1,
459
- line: 3
460
- }]
461
- }, {
462
- code: (0, _dedent.default)`
463
- const { it } = await import(\`@jest/globals\`);
464
-
465
- it('is a jest function', () => {});
466
- `,
467
- parserOptions: {
468
- sourceType: 'module',
469
- ecmaVersion: 2022
470
- },
471
- errors: [{
472
- messageId: 'details',
473
- data: expectedParsedJestFnCallResultData({
474
- name: 'it',
475
- type: 'test',
476
- head: {
477
- original: 'it',
478
- local: 'it',
479
- type: 'import',
480
- node: 'it'
481
- },
482
- members: []
483
- }),
484
- column: 1,
485
- line: 3
486
- }]
487
- }]
488
- });
489
- }
490
- ruleTester.run('cjs', rule, {
491
- valid: [{
492
- code: (0, _dedent.default)`
493
- const { it } = require('./test-utils');
494
-
495
- it('is not a jest function', () => {});
496
- `,
497
- parserOptions: {
498
- sourceType: 'script'
499
- }
500
- }, {
501
- code: (0, _dedent.default)`
502
- const { it } = require(\`./test-utils\`);
503
-
504
- it('is not a jest function', () => {});
505
- `,
506
- parserOptions: {
507
- sourceType: 'script'
508
- }
509
- }, {
510
- code: (0, _dedent.default)`
511
- const { describe } = require('./test-utils');
512
-
513
- describe('a function that is not from jest', () => {});
514
- `,
515
- parserOptions: {
516
- sourceType: 'script'
517
- }
518
- }, {
519
- code: (0, _dedent.default)`
520
- const { fn: it } = require('./test-utils');
521
-
522
- it('is not a jest function', () => {});
523
- `,
524
- parserOptions: {
525
- sourceType: 'script'
526
- }
527
- }, {
528
- code: (0, _dedent.default)`
529
- const { fn: it } = require('@jest/globals');
530
-
531
- it('is not considered a test function', () => {});
532
- `,
533
- parserOptions: {
534
- sourceType: 'script'
535
- }
536
- }, {
537
- code: (0, _dedent.default)`
538
- const { it } = aliasedRequire('@jest/globals');
539
-
540
- it('is not considered a jest function', () => {});
541
- `,
542
- parserOptions: {
543
- sourceType: 'script'
544
- }
545
- }, {
546
- code: (0, _dedent.default)`
547
- const { it } = require();
548
-
549
- it('is not a jest function', () => {});
550
- `,
551
- parserOptions: {
552
- sourceType: 'script'
553
- }
554
- }, {
555
- code: (0, _dedent.default)`
556
- const { it } = require(pathToMyPackage);
557
-
558
- it('is not a jest function', () => {});
559
- `,
560
- parserOptions: {
561
- sourceType: 'script'
562
- }
563
- }, {
564
- code: (0, _dedent.default)`
565
- const { [() => {}]: it } = require('@jest/globals');
566
-
567
- it('is not a jest function', () => {});
568
- `,
569
- parserOptions: {
570
- sourceType: 'script'
571
- }
572
- }],
573
- invalid: []
574
- });
575
- ruleTester.run('global aliases', rule, {
576
- valid: [{
577
- code: 'xcontext("skip this please", () => {});',
578
- settings: {
579
- jest: {
580
- globalAliases: {
581
- describe: ['context']
582
- }
583
- }
584
- }
585
- }],
586
- invalid: [{
587
- code: 'context("when there is an error", () => {})',
588
- errors: [{
589
- messageId: 'details',
590
- data: expectedParsedJestFnCallResultData({
591
- name: 'describe',
592
- type: 'describe',
593
- head: {
594
- original: 'describe',
595
- local: 'context',
596
- type: 'global',
597
- node: 'context'
598
- },
599
- members: []
600
- }),
601
- column: 1,
602
- line: 1
603
- }],
604
- settings: {
605
- jest: {
606
- globalAliases: {
607
- describe: ['context']
608
- }
609
- }
610
- }
611
- }, {
612
- code: 'context.skip("when there is an error", () => {})',
613
- errors: [{
614
- messageId: 'details',
615
- data: expectedParsedJestFnCallResultData({
616
- name: 'describe',
617
- type: 'describe',
618
- head: {
619
- original: 'describe',
620
- local: 'context',
621
- type: 'global',
622
- node: 'context'
623
- },
624
- members: ['skip']
625
- }),
626
- column: 1,
627
- line: 1
628
- }],
629
- settings: {
630
- jest: {
631
- globalAliases: {
632
- describe: ['context']
633
- }
634
- }
635
- }
636
- }, {
637
- code: (0, _dedent.default)`
638
- context("when there is an error", () => {})
639
- xcontext("skip this please", () => {});
640
- `,
641
- errors: [{
642
- messageId: 'details',
643
- data: expectedParsedJestFnCallResultData({
644
- name: 'xdescribe',
645
- type: 'describe',
646
- head: {
647
- original: 'xdescribe',
648
- local: 'xcontext',
649
- type: 'global',
650
- node: 'xcontext'
651
- },
652
- members: []
653
- }),
654
- column: 1,
655
- line: 2
656
- }],
657
- settings: {
658
- jest: {
659
- globalAliases: {
660
- xdescribe: ['xcontext']
661
- }
662
- }
663
- }
664
- }, {
665
- code: (0, _dedent.default)`
666
- context("when there is an error", () => {})
667
- describe("when there is an error", () => {})
668
- xcontext("skip this please", () => {});
669
- `,
670
- errors: [{
671
- messageId: 'details',
672
- data: expectedParsedJestFnCallResultData({
673
- name: 'describe',
674
- type: 'describe',
675
- head: {
676
- original: 'describe',
677
- local: 'context',
678
- type: 'global',
679
- node: 'context'
680
- },
681
- members: []
682
- }),
683
- column: 1,
684
- line: 1
685
- }, {
686
- messageId: 'details',
687
- data: expectedParsedJestFnCallResultData({
688
- name: 'describe',
689
- type: 'describe',
690
- head: {
691
- original: null,
692
- local: 'describe',
693
- type: 'global',
694
- node: 'describe'
695
- },
696
- members: []
697
- }),
698
- column: 1,
699
- line: 2
700
- }],
701
- settings: {
702
- jest: {
703
- globalAliases: {
704
- describe: ['context']
705
- }
706
- }
707
- }
708
- }]
709
- });
710
- ruleTester.run('typescript', rule, {
711
- valid: [{
712
- code: (0, _dedent.default)`
713
- const { test };
714
-
715
- test('is not a jest function', () => {});
716
- `,
717
- parser: require.resolve('@typescript-eslint/parser')
718
- }, {
719
- code: (0, _dedent.default)`
720
- import type { it } from '@jest/globals';
721
-
722
- it('is not a jest function', () => {});
723
- `,
724
- parser: require.resolve('@typescript-eslint/parser'),
725
- parserOptions: {
726
- sourceType: 'module'
727
- }
728
- }, {
729
- code: (0, _dedent.default)`
730
- import jest = require('@jest/globals');
731
- const { it } = jest;
732
-
733
- it('is not a jest function', () => {});
734
- `,
735
- parser: require.resolve('@typescript-eslint/parser'),
736
- parserOptions: {
737
- sourceType: 'module'
738
- }
739
- }, {
740
- code: (0, _dedent.default)`
741
- function it(message: string, fn: () => void): void;
742
- function it(cases: unknown[], message: string, fn: () => void): void;
743
- function it(...all: any[]): void {}
744
-
745
- it('is not a jest function', () => {});
746
- `,
747
- parser: require.resolve('@typescript-eslint/parser'),
748
- parserOptions: {
749
- sourceType: 'module'
750
- }
751
- }, {
752
- code: (0, _dedent.default)`
753
- interface it {}
754
- function it(...all: any[]): void {}
755
-
756
- it('is not a jest function', () => {});
757
- `,
758
- parser: require.resolve('@typescript-eslint/parser'),
759
- parserOptions: {
760
- sourceType: 'module'
761
- }
762
- }, {
763
- code: (0, _dedent.default)`
764
- import { it } from '@jest/globals';
765
- import { it } from '../it-utils';
766
-
767
- it('is not a jest function', () => {});
768
- `,
769
- parser: require.resolve('@typescript-eslint/parser'),
770
- parserOptions: {
771
- sourceType: 'module'
772
- }
773
- }, {
774
- code: (0, _dedent.default)`
775
- import dedent = require('dedent');
776
-
777
- dedent();
778
- `,
779
- parser: require.resolve('@typescript-eslint/parser')
780
- }],
781
- invalid: [{
782
- code: (0, _dedent.default)`
783
- import { it } from '../it-utils';
784
- import { it } from '@jest/globals';
785
-
786
- it('is a jest function', () => {});
787
- `,
788
- parser: require.resolve('@typescript-eslint/parser'),
789
- parserOptions: {
790
- sourceType: 'module'
791
- },
792
- errors: [{
793
- messageId: 'details',
794
- data: expectedParsedJestFnCallResultData({
795
- name: 'it',
796
- type: 'test',
797
- head: {
798
- original: 'it',
799
- local: 'it',
800
- type: 'import',
801
- node: 'it'
802
- },
803
- members: []
804
- }),
805
- column: 1,
806
- line: 4
807
- }]
808
- }]
809
- });