eslint-plugin-jest 27.1.1 → 27.1.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 (60) hide show
  1. package/lib/index.js +8 -16
  2. package/lib/processors/snapshot-processor.js +3 -5
  3. package/lib/rules/consistent-test-it.js +0 -18
  4. package/lib/rules/expect-expect.js +0 -15
  5. package/lib/rules/max-expects.js +0 -16
  6. package/lib/rules/max-nested-describe.js +0 -13
  7. package/lib/rules/no-alias-methods.js +0 -9
  8. package/lib/rules/no-commented-out-tests.js +0 -10
  9. package/lib/rules/no-conditional-expect.js +0 -19
  10. package/lib/rules/no-conditional-in-test.js +0 -9
  11. package/lib/rules/no-deprecated-functions.js +2 -18
  12. package/lib/rules/no-disabled-tests.js +2 -18
  13. package/lib/rules/no-done-callback.js +1 -30
  14. package/lib/rules/no-duplicate-hooks.js +0 -12
  15. package/lib/rules/no-export.js +0 -12
  16. package/lib/rules/no-focused-tests.js +0 -15
  17. package/lib/rules/no-hooks.js +0 -7
  18. package/lib/rules/no-identical-title.js +0 -19
  19. package/lib/rules/no-if.js +0 -24
  20. package/lib/rules/no-interpolation-in-snapshots.js +0 -9
  21. package/lib/rules/no-jasmine-globals.js +0 -22
  22. package/lib/rules/no-large-snapshots.js +2 -20
  23. package/lib/rules/no-mocks-import.js +0 -12
  24. package/lib/rules/no-restricted-jest-methods.js +1 -11
  25. package/lib/rules/no-restricted-matchers.js +0 -11
  26. package/lib/rules/no-standalone-expect.js +7 -33
  27. package/lib/rules/no-test-prefixes.js +0 -12
  28. package/lib/rules/no-test-return-statement.js +0 -12
  29. package/lib/rules/prefer-called-with.js +0 -10
  30. package/lib/rules/prefer-comparison-matcher.js +8 -33
  31. package/lib/rules/prefer-each.js +0 -18
  32. package/lib/rules/prefer-equality-matcher.js +11 -23
  33. package/lib/rules/prefer-expect-assertions.js +4 -51
  34. package/lib/rules/prefer-expect-resolves.js +0 -12
  35. package/lib/rules/prefer-hooks-in-order.js +2 -16
  36. package/lib/rules/prefer-hooks-on-top.js +0 -9
  37. package/lib/rules/prefer-lowercase-title.js +0 -23
  38. package/lib/rules/prefer-mock-promise-shorthand.js +5 -26
  39. package/lib/rules/prefer-snapshot-hint.js +7 -31
  40. package/lib/rules/prefer-spy-on.js +0 -17
  41. package/lib/rules/prefer-strict-equal.js +0 -9
  42. package/lib/rules/prefer-to-be.js +1 -30
  43. package/lib/rules/prefer-to-contain.js +11 -21
  44. package/lib/rules/prefer-to-have-length.js +4 -16
  45. package/lib/rules/prefer-todo.js +2 -18
  46. package/lib/rules/require-hook.js +0 -22
  47. package/lib/rules/require-to-throw-message.js +0 -9
  48. package/lib/rules/require-top-level-describe.js +0 -15
  49. package/lib/rules/unbound-method.js +2 -21
  50. package/lib/rules/utils/accessors.js +6 -18
  51. package/lib/rules/utils/detectJestVersion.js +2 -7
  52. package/lib/rules/utils/followTypeAssertionChain.js +0 -4
  53. package/lib/rules/utils/index.js +0 -10
  54. package/lib/rules/utils/misc.js +2 -46
  55. package/lib/rules/utils/parseJestFnCall.js +39 -114
  56. package/lib/rules/valid-describe-callback.js +0 -17
  57. package/lib/rules/valid-expect-in-promise.js +27 -94
  58. package/lib/rules/valid-expect.js +5 -48
  59. package/lib/rules/valid-title.js +0 -33
  60. package/package.json +2 -2
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("./utils");
9
-
10
8
  var _default = (0, _utils.createRule)({
11
9
  name: __filename,
12
10
  meta: {
@@ -27,25 +25,20 @@ var _default = (0, _utils.createRule)({
27
25
  type: 'suggestion'
28
26
  },
29
27
  defaultOptions: [],
30
-
31
28
  create(context) {
32
29
  let suiteDepth = 0;
33
30
  let testDepth = 0;
34
31
  return {
35
32
  CallExpression(node) {
36
33
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
37
-
38
34
  if (!jestFnCall) {
39
35
  return;
40
36
  }
41
-
42
37
  if (jestFnCall.type === 'describe') {
43
38
  suiteDepth++;
44
39
  }
45
-
46
40
  if (jestFnCall.type === 'test') {
47
41
  testDepth++;
48
-
49
42
  if (node.arguments.length < 2 && jestFnCall.members.every(s => (0, _utils.getAccessorValue)(s) !== 'todo')) {
50
43
  context.report({
51
44
  messageId: 'missingFunction',
@@ -53,8 +46,8 @@ var _default = (0, _utils.createRule)({
53
46
  });
54
47
  }
55
48
  }
56
-
57
- if ( // the only jest functions that are with "x" are "xdescribe", "xtest", and "xit"
49
+ if (
50
+ // the only jest functions that are with "x" are "xdescribe", "xtest", and "xit"
58
51
  jestFnCall.name.startsWith('x') || jestFnCall.members.some(s => (0, _utils.getAccessorValue)(s) === 'skip')) {
59
52
  context.report({
60
53
  messageId: jestFnCall.type === 'describe' ? 'disabledSuite' : 'disabledTest',
@@ -62,28 +55,22 @@ var _default = (0, _utils.createRule)({
62
55
  });
63
56
  }
64
57
  },
65
-
66
58
  'CallExpression:exit'(node) {
67
59
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
68
-
69
60
  if (!jestFnCall) {
70
61
  return;
71
62
  }
72
-
73
63
  if (jestFnCall.type === 'describe') {
74
64
  suiteDepth--;
75
65
  }
76
-
77
66
  if (jestFnCall.type === 'test') {
78
67
  testDepth--;
79
68
  }
80
69
  },
81
-
82
70
  'CallExpression[callee.name="pending"]'(node) {
83
71
  if ((0, _utils.scopeHasLocalReference)(context.getScope(), 'pending')) {
84
72
  return;
85
73
  }
86
-
87
74
  if (testDepth > 0) {
88
75
  context.report({
89
76
  messageId: 'pendingTest',
@@ -101,10 +88,7 @@ var _default = (0, _utils.createRule)({
101
88
  });
102
89
  }
103
90
  }
104
-
105
91
  };
106
92
  }
107
-
108
93
  });
109
-
110
94
  exports.default = _default;
@@ -4,29 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@typescript-eslint/utils");
9
-
10
8
  var _utils2 = require("./utils");
11
-
12
9
  const findCallbackArg = (node, isJestEach, context) => {
13
10
  if (isJestEach) {
14
11
  return node.arguments[1];
15
12
  }
16
-
17
13
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
18
-
19
14
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'hook' && node.arguments.length >= 1) {
20
15
  return node.arguments[0];
21
16
  }
22
-
23
17
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'test' && node.arguments.length >= 2) {
24
18
  return node.arguments[1];
25
19
  }
26
-
27
20
  return null;
28
21
  };
29
-
30
22
  var _default = (0, _utils2.createRule)({
31
23
  name: __filename,
32
24
  meta: {
@@ -45,31 +37,24 @@ var _default = (0, _utils2.createRule)({
45
37
  hasSuggestions: true
46
38
  },
47
39
  defaultOptions: [],
48
-
49
40
  create(context) {
50
41
  return {
51
42
  CallExpression(node) {
52
43
  var _getNodeName;
53
-
54
44
  // done is the second argument for it.each, not the first
55
45
  const isJestEach = ((_getNodeName = (0, _utils2.getNodeName)(node.callee)) === null || _getNodeName === void 0 ? void 0 : _getNodeName.endsWith('.each')) ?? false;
56
-
57
46
  if (isJestEach && node.callee.type !== _utils.AST_NODE_TYPES.TaggedTemplateExpression) {
58
47
  // isJestEach but not a TaggedTemplateExpression, so this must be
59
48
  // the `jest.each([])()` syntax which this rule doesn't support due
60
49
  // to its complexity (see jest-community/eslint-plugin-jest#710)
61
50
  return;
62
51
  }
63
-
64
52
  const callback = findCallbackArg(node, isJestEach, context);
65
53
  const callbackArgIndex = Number(isJestEach);
66
-
67
54
  if (!callback || !(0, _utils2.isFunction)(callback) || callback.params.length !== 1 + callbackArgIndex) {
68
55
  return;
69
56
  }
70
-
71
57
  const argument = callback.params[callbackArgIndex];
72
-
73
58
  if (argument.type !== _utils.AST_NODE_TYPES.Identifier) {
74
59
  context.report({
75
60
  node: argument,
@@ -77,7 +62,6 @@ var _default = (0, _utils2.createRule)({
77
62
  });
78
63
  return;
79
64
  }
80
-
81
65
  if (callback.async) {
82
66
  context.report({
83
67
  node: argument,
@@ -85,7 +69,6 @@ var _default = (0, _utils2.createRule)({
85
69
  });
86
70
  return;
87
71
  }
88
-
89
72
  context.report({
90
73
  node: argument,
91
74
  messageId: 'noDoneCallback',
@@ -94,7 +77,6 @@ var _default = (0, _utils2.createRule)({
94
77
  data: {
95
78
  callback: argument.name
96
79
  },
97
-
98
80
  fix(fixer) {
99
81
  const {
100
82
  body
@@ -104,46 +86,35 @@ var _default = (0, _utils2.createRule)({
104
86
  const lastBodyToken = sourceCode.getLastToken(body);
105
87
  const tokenBeforeArgument = sourceCode.getTokenBefore(argument);
106
88
  const tokenAfterArgument = sourceCode.getTokenAfter(argument);
107
- /* istanbul ignore if */
108
89
 
90
+ /* istanbul ignore if */
109
91
  if (!firstBodyToken || !lastBodyToken || !tokenBeforeArgument || !tokenAfterArgument) {
110
92
  throw new Error(`Unexpected null when attempting to fix ${context.getFilename()} - please file a github issue at https://github.com/jest-community/eslint-plugin-jest`);
111
93
  }
112
-
113
94
  const argumentInParens = tokenBeforeArgument.value === '(' && tokenAfterArgument.value === ')';
114
95
  let argumentFix = fixer.replaceText(argument, '()');
115
-
116
96
  if (argumentInParens) {
117
97
  argumentFix = fixer.remove(argument);
118
98
  }
119
-
120
99
  let newCallback = argument.name;
121
-
122
100
  if (argumentInParens) {
123
101
  newCallback = `(${newCallback})`;
124
102
  }
125
-
126
103
  let beforeReplacement = `new Promise(${newCallback} => `;
127
104
  let afterReplacement = ')';
128
105
  let replaceBefore = true;
129
-
130
106
  if (body.type === _utils.AST_NODE_TYPES.BlockStatement) {
131
107
  const keyword = 'return';
132
108
  beforeReplacement = `${keyword} ${beforeReplacement}{`;
133
109
  afterReplacement += '}';
134
110
  replaceBefore = false;
135
111
  }
136
-
137
112
  return [argumentFix, replaceBefore ? fixer.insertTextBefore(firstBodyToken, beforeReplacement) : fixer.insertTextAfter(firstBodyToken, beforeReplacement), fixer.insertTextAfter(lastBodyToken, afterReplacement)];
138
113
  }
139
-
140
114
  }]
141
115
  });
142
116
  }
143
-
144
117
  };
145
118
  }
146
-
147
119
  });
148
-
149
120
  exports.default = _default;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("./utils");
9
-
10
8
  var _default = (0, _utils.createRule)({
11
9
  name: __filename,
12
10
  meta: {
@@ -22,27 +20,21 @@ var _default = (0, _utils.createRule)({
22
20
  type: 'suggestion'
23
21
  },
24
22
  defaultOptions: [],
25
-
26
23
  create(context) {
27
24
  const hookContexts = [{}];
28
25
  return {
29
26
  CallExpression(node) {
30
27
  var _jestFnCall$name;
31
-
32
28
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
33
-
34
29
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'describe') {
35
30
  hookContexts.push({});
36
31
  }
37
-
38
32
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'hook') {
39
33
  return;
40
34
  }
41
-
42
35
  const currentLayer = hookContexts[hookContexts.length - 1];
43
36
  currentLayer[_jestFnCall$name = jestFnCall.name] || (currentLayer[_jestFnCall$name] = 0);
44
37
  currentLayer[jestFnCall.name] += 1;
45
-
46
38
  if (currentLayer[jestFnCall.name] > 1) {
47
39
  context.report({
48
40
  messageId: 'noDuplicateHook',
@@ -53,16 +45,12 @@ var _default = (0, _utils.createRule)({
53
45
  });
54
46
  }
55
47
  },
56
-
57
48
  'CallExpression:exit'(node) {
58
49
  if ((0, _utils.isTypeOfJestFnCall)(node, context, ['describe'])) {
59
50
  hookContexts.pop();
60
51
  }
61
52
  }
62
-
63
53
  };
64
54
  }
65
-
66
55
  });
67
-
68
56
  exports.default = _default;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@typescript-eslint/utils");
9
-
10
8
  var _utils2 = require("./utils");
11
-
12
9
  var _default = (0, _utils2.createRule)({
13
10
  name: __filename,
14
11
  meta: {
@@ -24,7 +21,6 @@ var _default = (0, _utils2.createRule)({
24
21
  schema: []
25
22
  },
26
23
  defaultOptions: [],
27
-
28
24
  create(context) {
29
25
  const exportNodes = [];
30
26
  let hasTestCase = false;
@@ -39,38 +35,30 @@ var _default = (0, _utils2.createRule)({
39
35
  }
40
36
  }
41
37
  },
42
-
43
38
  CallExpression(node) {
44
39
  if ((0, _utils2.isTypeOfJestFnCall)(node, context, ['test'])) {
45
40
  hasTestCase = true;
46
41
  }
47
42
  },
48
-
49
43
  'ExportNamedDeclaration, ExportDefaultDeclaration'(node) {
50
44
  exportNodes.push(node);
51
45
  },
52
-
53
46
  'AssignmentExpression > MemberExpression'(node) {
54
47
  let {
55
48
  object,
56
49
  property
57
50
  } = node;
58
-
59
51
  if (object.type === _utils.AST_NODE_TYPES.MemberExpression) {
60
52
  ({
61
53
  object,
62
54
  property
63
55
  } = object);
64
56
  }
65
-
66
57
  if ('name' in object && object.name === 'module' && property.type === _utils.AST_NODE_TYPES.Identifier && /^exports?$/u.test(property.name)) {
67
58
  exportNodes.push(node);
68
59
  }
69
60
  }
70
-
71
61
  };
72
62
  }
73
-
74
63
  });
75
-
76
64
  exports.default = _default;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@typescript-eslint/utils");
9
-
10
8
  var _utils2 = require("./utils");
11
-
12
9
  var _default = (0, _utils2.createRule)({
13
10
  name: __filename,
14
11
  meta: {
@@ -26,43 +23,34 @@ var _default = (0, _utils2.createRule)({
26
23
  hasSuggestions: true
27
24
  },
28
25
  defaultOptions: [],
29
-
30
26
  create(context) {
31
27
  return {
32
28
  CallExpression(node) {
33
29
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
34
-
35
30
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'test' && (jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'describe') {
36
31
  return;
37
32
  }
38
-
39
33
  if (jestFnCall.name.startsWith('f')) {
40
34
  context.report({
41
35
  messageId: 'focusedTest',
42
36
  node,
43
37
  suggest: [{
44
38
  messageId: 'suggestRemoveFocus',
45
-
46
39
  fix(fixer) {
47
40
  // don't apply the fixer if we're an aliased import
48
41
  if (jestFnCall.head.type === 'import' && jestFnCall.name !== jestFnCall.head.local) {
49
42
  return null;
50
43
  }
51
-
52
44
  return fixer.removeRange([node.range[0], node.range[0] + 1]);
53
45
  }
54
-
55
46
  }]
56
47
  });
57
48
  return;
58
49
  }
59
-
60
50
  const onlyNode = jestFnCall.members.find(s => (0, _utils2.getAccessorValue)(s) === 'only');
61
-
62
51
  if (!onlyNode) {
63
52
  return;
64
53
  }
65
-
66
54
  context.report({
67
55
  messageId: 'focusedTest',
68
56
  node: onlyNode,
@@ -72,10 +60,7 @@ var _default = (0, _utils2.createRule)({
72
60
  }]
73
61
  });
74
62
  }
75
-
76
63
  };
77
64
  }
78
-
79
65
  });
80
-
81
66
  exports.default = _default;
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("./utils");
9
-
10
8
  var _default = (0, _utils.createRule)({
11
9
  name: __filename,
12
10
  meta: {
@@ -33,14 +31,12 @@ var _default = (0, _utils.createRule)({
33
31
  defaultOptions: [{
34
32
  allow: []
35
33
  }],
36
-
37
34
  create(context, [{
38
35
  allow = []
39
36
  }]) {
40
37
  return {
41
38
  CallExpression(node) {
42
39
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
43
-
44
40
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'hook' && !allow.includes(jestFnCall.name)) {
45
41
  context.report({
46
42
  node,
@@ -51,10 +47,7 @@ var _default = (0, _utils.createRule)({
51
47
  });
52
48
  }
53
49
  }
54
-
55
50
  };
56
51
  }
57
-
58
52
  });
59
-
60
53
  exports.default = _default;
@@ -4,14 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("./utils");
9
-
10
8
  const newDescribeContext = () => ({
11
9
  describeTitles: [],
12
10
  testTitles: []
13
11
  });
14
-
15
12
  var _default = (0, _utils.createRule)({
16
13
  name: __filename,
17
14
  meta: {
@@ -28,34 +25,26 @@ var _default = (0, _utils.createRule)({
28
25
  type: 'suggestion'
29
26
  },
30
27
  defaultOptions: [],
31
-
32
28
  create(context) {
33
29
  const contexts = [newDescribeContext()];
34
30
  return {
35
31
  CallExpression(node) {
36
32
  const currentLayer = contexts[contexts.length - 1];
37
33
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
38
-
39
34
  if (!jestFnCall) {
40
35
  return;
41
36
  }
42
-
43
37
  if (jestFnCall.type === 'describe') {
44
38
  contexts.push(newDescribeContext());
45
39
  }
46
-
47
40
  if (jestFnCall.members.find(s => (0, _utils.isSupportedAccessor)(s, 'each'))) {
48
41
  return;
49
42
  }
50
-
51
43
  const [argument] = node.arguments;
52
-
53
44
  if (!argument || !(0, _utils.isStringNode)(argument)) {
54
45
  return;
55
46
  }
56
-
57
47
  const title = (0, _utils.getStringValue)(argument);
58
-
59
48
  if (jestFnCall.type === 'test') {
60
49
  if (currentLayer.testTitles.includes(title)) {
61
50
  context.report({
@@ -63,33 +52,25 @@ var _default = (0, _utils.createRule)({
63
52
  node: argument
64
53
  });
65
54
  }
66
-
67
55
  currentLayer.testTitles.push(title);
68
56
  }
69
-
70
57
  if (jestFnCall.type !== 'describe') {
71
58
  return;
72
59
  }
73
-
74
60
  if (currentLayer.describeTitles.includes(title)) {
75
61
  context.report({
76
62
  messageId: 'multipleDescribeTitle',
77
63
  node: argument
78
64
  });
79
65
  }
80
-
81
66
  currentLayer.describeTitles.push(title);
82
67
  },
83
-
84
68
  'CallExpression:exit'(node) {
85
69
  if ((0, _utils.isTypeOfJestFnCall)(node, context, ['describe'])) {
86
70
  contexts.pop();
87
71
  }
88
72
  }
89
-
90
73
  };
91
74
  }
92
-
93
75
  });
94
-
95
76
  exports.default = _default;
@@ -4,21 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@typescript-eslint/utils");
9
-
10
8
  var _utils2 = require("./utils");
11
-
12
9
  const testCaseNames = new Set([...Object.keys(_utils2.TestCaseName), 'it.only', 'it.only', 'it.skip', 'it.skip', 'test.only', 'test.only', 'test.skip', 'test.skip', 'fit.concurrent']);
13
-
14
10
  const isTestFunctionExpression = node => node.parent !== undefined && node.parent.type === _utils.AST_NODE_TYPES.CallExpression && testCaseNames.has((0, _utils2.getNodeName)(node.parent.callee));
15
-
16
11
  const conditionName = {
17
12
  [_utils.AST_NODE_TYPES.ConditionalExpression]: 'conditional',
18
13
  [_utils.AST_NODE_TYPES.SwitchStatement]: 'switch',
19
14
  [_utils.AST_NODE_TYPES.IfStatement]: 'if'
20
15
  };
21
-
22
16
  var _default = (0, _utils2.createRule)({
23
17
  name: __filename,
24
18
  meta: {
@@ -36,17 +30,13 @@ var _default = (0, _utils2.createRule)({
36
30
  type: 'suggestion'
37
31
  },
38
32
  defaultOptions: [],
39
-
40
33
  create(context) {
41
34
  const stack = [];
42
-
43
35
  function validate(node) {
44
36
  const lastElementInStack = stack[stack.length - 1];
45
-
46
37
  if (stack.length === 0 || !lastElementInStack) {
47
38
  return;
48
39
  }
49
-
50
40
  context.report({
51
41
  data: {
52
42
  condition: conditionName[node.type]
@@ -55,57 +45,43 @@ var _default = (0, _utils2.createRule)({
55
45
  node
56
46
  });
57
47
  }
58
-
59
48
  return {
60
49
  CallExpression(node) {
61
50
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
62
-
63
51
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'test') {
64
52
  stack.push(true);
65
-
66
53
  if (jestFnCall.members.some(s => (0, _utils2.getAccessorValue)(s) === 'each')) {
67
54
  stack.push(true);
68
55
  }
69
56
  }
70
57
  },
71
-
72
58
  FunctionExpression(node) {
73
59
  stack.push(isTestFunctionExpression(node));
74
60
  },
75
-
76
61
  FunctionDeclaration(node) {
77
62
  const declaredVariables = context.getDeclaredVariables(node);
78
63
  const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables, context);
79
64
  stack.push(testCallExpressions.length > 0);
80
65
  },
81
-
82
66
  ArrowFunctionExpression(node) {
83
67
  stack.push(isTestFunctionExpression(node));
84
68
  },
85
-
86
69
  IfStatement: validate,
87
70
  SwitchStatement: validate,
88
71
  ConditionalExpression: validate,
89
-
90
72
  'CallExpression:exit'() {
91
73
  stack.pop();
92
74
  },
93
-
94
75
  'FunctionExpression:exit'() {
95
76
  stack.pop();
96
77
  },
97
-
98
78
  'FunctionDeclaration:exit'() {
99
79
  stack.pop();
100
80
  },
101
-
102
81
  'ArrowFunctionExpression:exit'() {
103
82
  stack.pop();
104
83
  }
105
-
106
84
  };
107
85
  }
108
-
109
86
  });
110
-
111
87
  exports.default = _default;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@typescript-eslint/utils");
9
-
10
8
  var _utils2 = require("./utils");
11
-
12
9
  var _default = (0, _utils2.createRule)({
13
10
  name: __filename,
14
11
  meta: {
@@ -24,16 +21,13 @@ var _default = (0, _utils2.createRule)({
24
21
  type: 'problem'
25
22
  },
26
23
  defaultOptions: [],
27
-
28
24
  create(context) {
29
25
  return {
30
26
  CallExpression(node) {
31
27
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
32
-
33
28
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'expect') {
34
29
  return;
35
30
  }
36
-
37
31
  if (['toMatchInlineSnapshot', 'toThrowErrorMatchingInlineSnapshot'].includes((0, _utils2.getAccessorValue)(jestFnCall.matcher))) {
38
32
  // Check all since the optional 'propertyMatchers' argument might be present
39
33
  jestFnCall.args.forEach(argument => {
@@ -46,10 +40,7 @@ var _default = (0, _utils2.createRule)({
46
40
  });
47
41
  }
48
42
  }
49
-
50
43
  };
51
44
  }
52
-
53
45
  });
54
-
55
46
  exports.default = _default;