eslint-plugin-jest 24.4.2 → 26.1.0

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 +75 -50
  2. package/docs/rules/expect-expect.md +42 -1
  3. package/docs/rules/max-nested-describe.md +4 -5
  4. package/docs/rules/no-conditional-expect.md +57 -3
  5. package/docs/rules/no-conditional-in-test.md +79 -0
  6. package/docs/rules/no-deprecated-functions.md +5 -0
  7. package/docs/rules/no-done-callback.md +3 -3
  8. package/docs/rules/no-if.md +5 -0
  9. package/docs/rules/no-standalone-expect.md +3 -3
  10. package/docs/rules/no-test-return-statement.md +1 -2
  11. package/docs/rules/prefer-comparison-matcher.md +55 -0
  12. package/docs/rules/prefer-equality-matcher.md +29 -0
  13. package/docs/rules/prefer-expect-assertions.md +126 -0
  14. package/docs/rules/prefer-expect-resolves.md +53 -0
  15. package/docs/rules/prefer-hooks-on-top.md +72 -48
  16. package/docs/rules/{lowercase-name.md → prefer-lowercase-title.md} +7 -7
  17. package/docs/rules/prefer-snapshot-hint.md +188 -0
  18. package/docs/rules/prefer-to-be.md +53 -0
  19. package/docs/rules/require-hook.md +187 -0
  20. package/docs/rules/require-top-level-describe.md +28 -0
  21. package/docs/rules/{valid-describe.md → valid-describe-callback.md} +1 -1
  22. package/docs/rules/valid-expect-in-promise.md +55 -14
  23. package/docs/rules/valid-expect.md +13 -0
  24. package/docs/rules/valid-title.md +30 -2
  25. package/lib/index.js +2 -3
  26. package/lib/processors/snapshot-processor.js +1 -1
  27. package/lib/rules/consistent-test-it.js +20 -20
  28. package/lib/rules/detectJestVersion.js +29 -0
  29. package/lib/rules/expect-expect.js +25 -11
  30. package/lib/rules/max-nested-describe.js +5 -5
  31. package/lib/rules/no-conditional-expect.js +9 -9
  32. package/lib/rules/no-conditional-in-test.js +60 -0
  33. package/lib/rules/no-deprecated-functions.js +14 -32
  34. package/lib/rules/no-done-callback.js +10 -10
  35. package/lib/rules/no-export.js +6 -6
  36. package/lib/rules/no-focused-tests.js +11 -11
  37. package/lib/rules/no-identical-title.js +3 -3
  38. package/lib/rules/no-if.js +13 -11
  39. package/lib/rules/no-interpolation-in-snapshots.js +6 -6
  40. package/lib/rules/no-jasmine-globals.js +10 -10
  41. package/lib/rules/no-large-snapshots.js +11 -11
  42. package/lib/rules/no-standalone-expect.js +14 -14
  43. package/lib/rules/no-test-prefixes.js +6 -6
  44. package/lib/rules/no-test-return-statement.js +8 -8
  45. package/lib/rules/prefer-comparison-matcher.js +139 -0
  46. package/lib/rules/prefer-equality-matcher.js +98 -0
  47. package/lib/rules/prefer-expect-assertions.js +93 -11
  48. package/lib/rules/prefer-expect-resolves.js +48 -0
  49. package/lib/rules/prefer-hooks-on-top.js +1 -1
  50. package/lib/rules/{lowercase-name.js → prefer-lowercase-title.js} +20 -1
  51. package/lib/rules/prefer-snapshot-hint.js +112 -0
  52. package/lib/rules/prefer-spy-on.js +9 -9
  53. package/lib/rules/prefer-to-be.js +136 -0
  54. package/lib/rules/prefer-to-contain.js +19 -67
  55. package/lib/rules/prefer-to-have-length.js +9 -14
  56. package/lib/rules/prefer-todo.js +9 -9
  57. package/lib/rules/require-hook.js +121 -0
  58. package/lib/rules/require-top-level-describe.js +40 -6
  59. package/lib/rules/utils.js +34 -30
  60. package/lib/rules/{valid-describe.js → valid-describe-callback.js} +9 -9
  61. package/lib/rules/valid-expect-in-promise.js +336 -67
  62. package/lib/rules/valid-expect.js +36 -19
  63. package/lib/rules/valid-title.js +61 -61
  64. package/package.json +40 -27
  65. package/CHANGELOG.md +0 -513
  66. package/docs/rules/no-expect-resolves.md +0 -47
  67. package/docs/rules/no-truthy-falsy.md +0 -53
  68. package/docs/rules/no-try-expect.md +0 -63
  69. package/docs/rules/prefer-inline-snapshots.md +0 -51
  70. package/docs/rules/prefer-to-be-null.md +0 -33
  71. package/docs/rules/prefer-to-be-undefined.md +0 -33
  72. package/lib/rules/no-expect-resolves.js +0 -40
  73. package/lib/rules/no-truthy-falsy.js +0 -58
  74. package/lib/rules/no-try-expect.js +0 -89
  75. package/lib/rules/prefer-inline-snapshots.js +0 -69
  76. package/lib/rules/prefer-to-be-null.js +0 -67
  77. package/lib/rules/prefer-to-be-undefined.js +0 -67
@@ -7,6 +7,12 @@ exports.default = void 0;
7
7
 
8
8
  var _utils = require("./utils");
9
9
 
10
+ const messages = {
11
+ tooManyDescribes: 'There should not be more than {{ max }} describe{{ s }} at the top level',
12
+ unexpectedTestCase: 'All test cases must be wrapped in a describe block.',
13
+ unexpectedHook: 'All hooks must be wrapped in a describe block.'
14
+ };
15
+
10
16
  var _default = (0, _utils.createRule)({
11
17
  name: __filename,
12
18
  meta: {
@@ -15,21 +21,49 @@ var _default = (0, _utils.createRule)({
15
21
  description: 'Require test cases and hooks to be inside a `describe` block',
16
22
  recommended: false
17
23
  },
18
- messages: {
19
- unexpectedTestCase: 'All test cases must be wrapped in a describe block.',
20
- unexpectedHook: 'All hooks must be wrapped in a describe block.'
21
- },
24
+ messages,
22
25
  type: 'suggestion',
23
- schema: []
26
+ schema: [{
27
+ type: 'object',
28
+ properties: {
29
+ maxNumberOfTopLevelDescribes: {
30
+ type: 'number',
31
+ minimum: 1
32
+ }
33
+ },
34
+ additionalProperties: false
35
+ }]
24
36
  },
25
- defaultOptions: [],
37
+ defaultOptions: [{}],
26
38
 
27
39
  create(context) {
40
+ var _context$options$;
41
+
42
+ const {
43
+ maxNumberOfTopLevelDescribes = Infinity
44
+ } = (_context$options$ = context.options[0]) !== null && _context$options$ !== void 0 ? _context$options$ : {};
45
+ let numberOfTopLevelDescribeBlocks = 0;
28
46
  let numberOfDescribeBlocks = 0;
29
47
  return {
30
48
  CallExpression(node) {
31
49
  if ((0, _utils.isDescribeCall)(node)) {
32
50
  numberOfDescribeBlocks++;
51
+
52
+ if (numberOfDescribeBlocks === 1) {
53
+ numberOfTopLevelDescribeBlocks++;
54
+
55
+ if (numberOfTopLevelDescribeBlocks > maxNumberOfTopLevelDescribes) {
56
+ context.report({
57
+ node,
58
+ messageId: 'tooManyDescribes',
59
+ data: {
60
+ max: maxNumberOfTopLevelDescribes,
61
+ s: maxNumberOfTopLevelDescribes === 1 ? '' : 's'
62
+ }
63
+ });
64
+ }
65
+ }
66
+
33
67
  return;
34
68
  }
35
69
 
@@ -3,25 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.getAccessorValue = exports.followTypeAssertionChain = exports.createRule = exports.TestCaseProperty = exports.TestCaseName = exports.ModifierName = exports.HookName = exports.EqualityMatcher = exports.DescribeProperty = exports.DescribeAlias = void 0;
6
7
  exports.getNodeName = getNodeName;
7
- exports.scopeHasLocalReference = exports.isDescribeCall = exports.isTestCaseCall = exports.getTestCallExpressionsFromDeclaredVariables = exports.isHook = exports.isFunction = exports.TestCaseProperty = exports.DescribeProperty = exports.HookName = exports.TestCaseName = exports.DescribeAlias = exports.parseExpectCall = exports.isParsedEqualityMatcherCall = exports.EqualityMatcher = exports.ModifierName = exports.isExpectMember = exports.isExpectCall = exports.getAccessorValue = exports.isSupportedAccessor = exports.hasOnlyOneArgument = exports.getStringValue = exports.isStringNode = exports.followTypeAssertionChain = exports.createRule = void 0;
8
+ exports.scopeHasLocalReference = exports.parseExpectCall = exports.isTestCaseCall = exports.isSupportedAccessor = exports.isStringNode = exports.isParsedEqualityMatcherCall = exports.isIdentifier = exports.isHook = exports.isFunction = exports.isExpectMember = exports.isExpectCall = exports.isDescribeCall = exports.hasOnlyOneArgument = exports.getTestCallExpressionsFromDeclaredVariables = exports.getStringValue = void 0;
8
9
 
9
10
  var _path = require("path");
10
11
 
11
- var _experimentalUtils = require("@typescript-eslint/experimental-utils");
12
+ var _utils = require("@typescript-eslint/utils");
12
13
 
13
14
  var _package = require("../../package.json");
14
15
 
15
16
  const REPO_URL = 'https://github.com/jest-community/eslint-plugin-jest';
16
17
 
17
- const createRule = _experimentalUtils.ESLintUtils.RuleCreator(name => {
18
+ const createRule = _utils.ESLintUtils.RuleCreator(name => {
18
19
  const ruleName = (0, _path.parse)(name).name;
19
20
  return `${REPO_URL}/blob/v${_package.version}/docs/rules/${ruleName}.md`;
20
21
  });
21
22
 
22
23
  exports.createRule = createRule;
23
24
 
24
- const isTypeCastExpression = node => node.type === _experimentalUtils.AST_NODE_TYPES.TSAsExpression || node.type === _experimentalUtils.AST_NODE_TYPES.TSTypeAssertion;
25
+ const isTypeCastExpression = node => node.type === _utils.AST_NODE_TYPES.TSAsExpression || node.type === _utils.AST_NODE_TYPES.TSTypeAssertion;
25
26
 
26
27
  const followTypeAssertionChain = expression => isTypeCastExpression(expression) ? followTypeAssertionChain(expression.expression) : expression;
27
28
  /**
@@ -44,7 +45,7 @@ exports.followTypeAssertionChain = followTypeAssertionChain;
44
45
  *
45
46
  * @template V
46
47
  */
47
- const isStringLiteral = (node, value) => node.type === _experimentalUtils.AST_NODE_TYPES.Literal && typeof node.value === 'string' && (value === undefined || node.value === value);
48
+ const isStringLiteral = (node, value) => node.type === _utils.AST_NODE_TYPES.Literal && typeof node.value === 'string' && (value === undefined || node.value === value);
48
49
 
49
50
  /**
50
51
  * Checks if the given `node` is a `TemplateLiteral`.
@@ -61,7 +62,8 @@ const isStringLiteral = (node, value) => node.type === _experimentalUtils.AST_NO
61
62
  *
62
63
  * @template V
63
64
  */
64
- const isTemplateLiteral = (node, value) => node.type === _experimentalUtils.AST_NODE_TYPES.TemplateLiteral && node.quasis.length === 1 && (value === undefined || node.quasis[0].value.raw === value);
65
+ const isTemplateLiteral = (node, value) => node.type === _utils.AST_NODE_TYPES.TemplateLiteral && node.quasis.length === 1 && ( // bail out if not simple
66
+ value === undefined || node.quasis[0].value.raw === value);
65
67
 
66
68
  /**
67
69
  * Checks if the given `node` is a {@link StringNode}.
@@ -126,7 +128,7 @@ exports.hasOnlyOneArgument = hasOnlyOneArgument;
126
128
  *
127
129
  * @template V
128
130
  */
129
- const isIdentifier = (node, name) => node.type === _experimentalUtils.AST_NODE_TYPES.Identifier && (name === undefined || node.name === name);
131
+ const isIdentifier = (node, name) => node.type === _utils.AST_NODE_TYPES.Identifier && (name === undefined || node.name === name);
130
132
  /**
131
133
  * Checks if the given `node` is a "supported accessor".
132
134
  *
@@ -151,6 +153,8 @@ const isIdentifier = (node, name) => node.type === _experimentalUtils.AST_NODE_T
151
153
  */
152
154
 
153
155
 
156
+ exports.isIdentifier = isIdentifier;
157
+
154
158
  const isSupportedAccessor = (node, value) => isIdentifier(node, value) || isStringNode(node, value);
155
159
  /**
156
160
  * Gets the value of the given `AccessorNode`,
@@ -166,7 +170,7 @@ const isSupportedAccessor = (node, value) => isIdentifier(node, value) || isStri
166
170
 
167
171
  exports.isSupportedAccessor = isSupportedAccessor;
168
172
 
169
- const getAccessorValue = accessor => accessor.type === _experimentalUtils.AST_NODE_TYPES.Identifier ? accessor.name : getStringValue(accessor);
173
+ const getAccessorValue = accessor => accessor.type === _utils.AST_NODE_TYPES.Identifier ? accessor.name : getStringValue(accessor);
170
174
 
171
175
  exports.getAccessorValue = getAccessorValue;
172
176
 
@@ -182,11 +186,11 @@ exports.getAccessorValue = getAccessorValue;
182
186
  *
183
187
  * @return {node is ExpectCall}
184
188
  */
185
- const isExpectCall = node => node.type === _experimentalUtils.AST_NODE_TYPES.CallExpression && isSupportedAccessor(node.callee, 'expect') && node.parent !== undefined;
189
+ const isExpectCall = node => node.type === _utils.AST_NODE_TYPES.CallExpression && isSupportedAccessor(node.callee, 'expect') && node.parent !== undefined;
186
190
 
187
191
  exports.isExpectCall = isExpectCall;
188
192
 
189
- const isExpectMember = (node, name) => node.type === _experimentalUtils.AST_NODE_TYPES.MemberExpression && isSupportedAccessor(node.property, name);
193
+ const isExpectMember = (node, name) => node.type === _utils.AST_NODE_TYPES.MemberExpression && isSupportedAccessor(node.property, name);
190
194
  /**
191
195
  * Represents all the jest matchers.
192
196
  */
@@ -231,7 +235,7 @@ const reparseAsMatcher = parsedMember => ({ ...parsedMember,
231
235
  *
232
236
  * If this matcher isn't called, this will be `null`.
233
237
  */
234
- arguments: parsedMember.node.parent && parsedMember.node.parent.type === _experimentalUtils.AST_NODE_TYPES.CallExpression ? parsedMember.node.parent.arguments : null
238
+ arguments: parsedMember.node.parent.type === _utils.AST_NODE_TYPES.CallExpression ? parsedMember.node.parent.arguments : null
235
239
  });
236
240
  /**
237
241
  * Re-parses the given `parsedMember` as a `ParsedExpectModifier`.
@@ -258,7 +262,7 @@ const reparseMemberAsModifier = parsedMember => {
258
262
  throw new Error(`modifier name must be either "${ModifierName.resolves}" or "${ModifierName.rejects}" (got "${parsedMember.name}")`);
259
263
  }
260
264
 
261
- const negation = parsedMember.node.parent && isExpectMember(parsedMember.node.parent, ModifierName.not) ? parsedMember.node.parent : undefined;
265
+ const negation = isExpectMember(parsedMember.node.parent, ModifierName.not) ? parsedMember.node.parent : undefined;
262
266
  return { ...parsedMember,
263
267
  negation
264
268
  };
@@ -295,7 +299,7 @@ const parseExpectCall = expect => {
295
299
  const modifier = expectation.modifier = reparseMemberAsModifier(parsedMember);
296
300
  const memberNode = modifier.negation || modifier.node;
297
301
 
298
- if (!memberNode.parent || !isExpectMember(memberNode.parent)) {
302
+ if (!isExpectMember(memberNode.parent)) {
299
303
  return expectation;
300
304
  }
301
305
 
@@ -362,25 +366,25 @@ function getNodeName(node) {
362
366
  }
363
367
 
364
368
  switch (node.type) {
365
- case _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression:
369
+ case _utils.AST_NODE_TYPES.TaggedTemplateExpression:
366
370
  return getNodeName(node.tag);
367
371
 
368
- case _experimentalUtils.AST_NODE_TYPES.MemberExpression:
372
+ case _utils.AST_NODE_TYPES.MemberExpression:
369
373
  return joinNames(getNodeName(node.object), getNodeName(node.property));
370
374
 
371
- case _experimentalUtils.AST_NODE_TYPES.NewExpression:
372
- case _experimentalUtils.AST_NODE_TYPES.CallExpression:
375
+ case _utils.AST_NODE_TYPES.NewExpression:
376
+ case _utils.AST_NODE_TYPES.CallExpression:
373
377
  return getNodeName(node.callee);
374
378
  }
375
379
 
376
380
  return null;
377
381
  }
378
382
 
379
- const isFunction = node => node.type === _experimentalUtils.AST_NODE_TYPES.FunctionExpression || node.type === _experimentalUtils.AST_NODE_TYPES.ArrowFunctionExpression;
383
+ const isFunction = node => node.type === _utils.AST_NODE_TYPES.FunctionExpression || node.type === _utils.AST_NODE_TYPES.ArrowFunctionExpression;
380
384
 
381
385
  exports.isFunction = isFunction;
382
386
 
383
- const isHook = node => node.callee.type === _experimentalUtils.AST_NODE_TYPES.Identifier && HookName.hasOwnProperty(node.callee.name);
387
+ const isHook = node => node.callee.type === _utils.AST_NODE_TYPES.Identifier && HookName.hasOwnProperty(node.callee.name);
384
388
 
385
389
  exports.isHook = isHook;
386
390
 
@@ -389,12 +393,12 @@ const getTestCallExpressionsFromDeclaredVariables = declaredVariables => {
389
393
  references
390
394
  }) => acc.concat(references.map(({
391
395
  identifier
392
- }) => identifier.parent).filter(node => !!node && node.type === _experimentalUtils.AST_NODE_TYPES.CallExpression && isTestCaseCall(node))), []);
396
+ }) => identifier.parent).filter(node => !!node && node.type === _utils.AST_NODE_TYPES.CallExpression && isTestCaseCall(node))), []);
393
397
  };
394
398
 
395
399
  exports.getTestCallExpressionsFromDeclaredVariables = getTestCallExpressionsFromDeclaredVariables;
396
400
 
397
- const isTestCaseName = node => node.type === _experimentalUtils.AST_NODE_TYPES.Identifier && TestCaseName.hasOwnProperty(node.name);
401
+ const isTestCaseName = node => node.type === _utils.AST_NODE_TYPES.Identifier && TestCaseName.hasOwnProperty(node.name);
398
402
 
399
403
  const isTestCaseProperty = node => isSupportedAccessor(node) && TestCaseProperty.hasOwnProperty(getAccessorValue(node));
400
404
  /**
@@ -415,15 +419,15 @@ const isTestCaseCall = node => {
415
419
  return true;
416
420
  }
417
421
 
418
- const callee = node.callee.type === _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _experimentalUtils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
422
+ const callee = node.callee.type === _utils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _utils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
419
423
 
420
- if (callee.type === _experimentalUtils.AST_NODE_TYPES.MemberExpression && isTestCaseProperty(callee.property)) {
424
+ if (callee.type === _utils.AST_NODE_TYPES.MemberExpression && isTestCaseProperty(callee.property)) {
421
425
  // if we're an `each()`, ensure we're the outer CallExpression (i.e `.each()()`)
422
- if (getAccessorValue(callee.property) === 'each' && node.callee.type !== _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression && node.callee.type !== _experimentalUtils.AST_NODE_TYPES.CallExpression) {
426
+ if (getAccessorValue(callee.property) === 'each' && node.callee.type !== _utils.AST_NODE_TYPES.TaggedTemplateExpression && node.callee.type !== _utils.AST_NODE_TYPES.CallExpression) {
423
427
  return false;
424
428
  }
425
429
 
426
- return callee.object.type === _experimentalUtils.AST_NODE_TYPES.MemberExpression ? isTestCaseName(callee.object.object) : isTestCaseName(callee.object);
430
+ return callee.object.type === _utils.AST_NODE_TYPES.MemberExpression ? isTestCaseName(callee.object.object) : isTestCaseName(callee.object);
427
431
  }
428
432
 
429
433
  return false;
@@ -431,7 +435,7 @@ const isTestCaseCall = node => {
431
435
 
432
436
  exports.isTestCaseCall = isTestCaseCall;
433
437
 
434
- const isDescribeAlias = node => node.type === _experimentalUtils.AST_NODE_TYPES.Identifier && DescribeAlias.hasOwnProperty(node.name);
438
+ const isDescribeAlias = node => node.type === _utils.AST_NODE_TYPES.Identifier && DescribeAlias.hasOwnProperty(node.name);
435
439
 
436
440
  const isDescribeProperty = node => isSupportedAccessor(node) && DescribeProperty.hasOwnProperty(getAccessorValue(node));
437
441
  /**
@@ -452,15 +456,15 @@ const isDescribeCall = node => {
452
456
  return true;
453
457
  }
454
458
 
455
- const callee = node.callee.type === _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _experimentalUtils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
459
+ const callee = node.callee.type === _utils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _utils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
456
460
 
457
- if (callee.type === _experimentalUtils.AST_NODE_TYPES.MemberExpression && isDescribeProperty(callee.property)) {
461
+ if (callee.type === _utils.AST_NODE_TYPES.MemberExpression && isDescribeProperty(callee.property)) {
458
462
  // if we're an `each()`, ensure we're the outer CallExpression (i.e `.each()()`)
459
- if (getAccessorValue(callee.property) === 'each' && node.callee.type !== _experimentalUtils.AST_NODE_TYPES.TaggedTemplateExpression && node.callee.type !== _experimentalUtils.AST_NODE_TYPES.CallExpression) {
463
+ if (getAccessorValue(callee.property) === 'each' && node.callee.type !== _utils.AST_NODE_TYPES.TaggedTemplateExpression && node.callee.type !== _utils.AST_NODE_TYPES.CallExpression) {
460
464
  return false;
461
465
  }
462
466
 
463
- return callee.object.type === _experimentalUtils.AST_NODE_TYPES.MemberExpression ? isDescribeAlias(callee.object.object) : isDescribeAlias(callee.object);
467
+ return callee.object.type === _utils.AST_NODE_TYPES.MemberExpression ? isDescribeAlias(callee.object.object) : isDescribeAlias(callee.object);
464
468
  }
465
469
 
466
470
  return false;
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _experimentalUtils = require("@typescript-eslint/experimental-utils");
8
+ var _utils = require("@typescript-eslint/utils");
9
9
 
10
- var _utils = require("./utils");
10
+ var _utils2 = require("./utils");
11
11
 
12
12
  const paramsLocation = params => {
13
13
  const [first] = params;
@@ -18,7 +18,7 @@ const paramsLocation = params => {
18
18
  };
19
19
  };
20
20
 
21
- var _default = (0, _utils.createRule)({
21
+ var _default = (0, _utils2.createRule)({
22
22
  name: __filename,
23
23
  meta: {
24
24
  type: 'problem',
@@ -41,7 +41,7 @@ var _default = (0, _utils.createRule)({
41
41
  create(context) {
42
42
  return {
43
43
  CallExpression(node) {
44
- if (!(0, _utils.isDescribeCall)(node)) {
44
+ if (!(0, _utils2.isDescribeCall)(node)) {
45
45
  return;
46
46
  }
47
47
 
@@ -62,7 +62,7 @@ var _default = (0, _utils.createRule)({
62
62
  return;
63
63
  }
64
64
 
65
- if (!(0, _utils.isFunction)(callback)) {
65
+ if (!(0, _utils2.isFunction)(callback)) {
66
66
  context.report({
67
67
  messageId: 'secondArgumentMustBeFunction',
68
68
  loc: paramsLocation(node.arguments)
@@ -77,23 +77,23 @@ var _default = (0, _utils.createRule)({
77
77
  });
78
78
  }
79
79
 
80
- if (!(0, _utils.getNodeName)(node).endsWith('each') && callback.params.length) {
80
+ if (!(0, _utils2.getNodeName)(node).endsWith('each') && callback.params.length) {
81
81
  context.report({
82
82
  messageId: 'unexpectedDescribeArgument',
83
83
  loc: paramsLocation(callback.params)
84
84
  });
85
85
  }
86
86
 
87
- if (callback.body.type === _experimentalUtils.AST_NODE_TYPES.CallExpression) {
87
+ if (callback.body.type === _utils.AST_NODE_TYPES.CallExpression) {
88
88
  context.report({
89
89
  messageId: 'unexpectedReturnInDescribe',
90
90
  node: callback
91
91
  });
92
92
  }
93
93
 
94
- if (callback.body.type === _experimentalUtils.AST_NODE_TYPES.BlockStatement) {
94
+ if (callback.body.type === _utils.AST_NODE_TYPES.BlockStatement) {
95
95
  callback.body.body.forEach(node => {
96
- if (node.type === _experimentalUtils.AST_NODE_TYPES.ReturnStatement) {
96
+ if (node.type === _utils.AST_NODE_TYPES.ReturnStatement) {
97
97
  context.report({
98
98
  messageId: 'unexpectedReturnInDescribe',
99
99
  node