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
package/lib/index.js CHANGED
@@ -1,41 +1,34 @@
1
1
  "use strict";
2
2
 
3
3
  var _fs = require("fs");
4
-
5
4
  var _path = require("path");
6
-
7
5
  var _globals = _interopRequireDefault(require("./globals.json"));
8
-
9
6
  var snapshotProcessor = _interopRequireWildcard(require("./processors/snapshot-processor"));
10
-
11
7
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
-
13
8
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
-
15
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
-
17
10
  // copied from https://github.com/babel/babel/blob/d8da63c929f2d28c401571e2a43166678c555bc4/packages/babel-helpers/src/helpers.js#L602-L606
18
-
19
11
  /* istanbul ignore next */
20
12
  const interopRequireDefault = obj => obj && obj.__esModule ? obj : {
21
13
  default: obj
22
14
  };
23
-
24
- const importDefault = moduleName => // eslint-disable-next-line @typescript-eslint/no-require-imports
15
+ const importDefault = moduleName =>
16
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
25
17
  interopRequireDefault(require(moduleName)).default;
26
-
27
18
  const rulesDir = (0, _path.join)(__dirname, 'rules');
28
19
  const excludedFiles = ['__tests__', 'detectJestVersion', 'utils'];
29
- const rules = (0, _fs.readdirSync)(rulesDir).map(rule => (0, _path.parse)(rule).name).filter(rule => !excludedFiles.includes(rule)).reduce((acc, curr) => ({ ...acc,
20
+ const rules = (0, _fs.readdirSync)(rulesDir).map(rule => (0, _path.parse)(rule).name).filter(rule => !excludedFiles.includes(rule)).reduce((acc, curr) => ({
21
+ ...acc,
30
22
  [curr]: importDefault((0, _path.join)(rulesDir, curr))
31
23
  }), {});
32
- const recommendedRules = Object.entries(rules).filter(([, rule]) => rule.meta.docs.recommended).reduce((acc, [name, rule]) => ({ ...acc,
24
+ const recommendedRules = Object.entries(rules).filter(([, rule]) => rule.meta.docs.recommended).reduce((acc, [name, rule]) => ({
25
+ ...acc,
33
26
  [`jest/${name}`]: rule.meta.docs.recommended
34
27
  }), {});
35
- const allRules = Object.entries(rules).filter(([, rule]) => !rule.meta.deprecated).reduce((acc, [name]) => ({ ...acc,
28
+ const allRules = Object.entries(rules).filter(([, rule]) => !rule.meta.deprecated).reduce((acc, [name]) => ({
29
+ ...acc,
36
30
  [`jest/${name}`]: 'error'
37
31
  }), {});
38
-
39
32
  const createConfig = rules => ({
40
33
  plugins: ['jest'],
41
34
  env: {
@@ -43,7 +36,6 @@ const createConfig = rules => ({
43
36
  },
44
37
  rules
45
38
  });
46
-
47
39
  module.exports = {
48
40
  configs: {
49
41
  all: createConfig(allRules),
@@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.preprocess = exports.postprocess = void 0;
7
-
8
7
  // https://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins
9
8
  // https://github.com/typescript-eslint/typescript-eslint/issues/808
10
- const preprocess = source => [source];
11
9
 
10
+ const preprocess = source => [source];
12
11
  exports.preprocess = preprocess;
13
-
14
- const postprocess = messages => // snapshot files should only be linted with snapshot specific rules
12
+ const postprocess = messages =>
13
+ // snapshot files should only be linted with snapshot specific rules
15
14
  messages[0].filter(message => message.ruleId === 'jest/no-large-snapshots');
16
-
17
15
  exports.postprocess = postprocess;
@@ -4,13 +4,9 @@ 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 buildFixer = (callee, nodeName, preferredTestKeyword) => fixer => [fixer.replaceText(callee.type === _utils.AST_NODE_TYPES.MemberExpression ? callee.object : callee, getPreferredNodeName(nodeName, preferredTestKeyword))];
13
-
14
10
  var _default = (0, _utils2.createRule)({
15
11
  name: __filename,
16
12
  meta: {
@@ -42,7 +38,6 @@ var _default = (0, _utils2.createRule)({
42
38
  fn: _utils2.TestCaseName.test,
43
39
  withinDescribe: _utils2.TestCaseName.it
44
40
  }],
45
-
46
41
  create(context) {
47
42
  const configObj = context.options[0] || {};
48
43
  const testKeyword = configObj.fn || _utils2.TestCaseName.test;
@@ -51,18 +46,14 @@ var _default = (0, _utils2.createRule)({
51
46
  return {
52
47
  CallExpression(node) {
53
48
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
54
-
55
49
  if (!jestFnCall) {
56
50
  return;
57
51
  }
58
-
59
52
  if (jestFnCall.type === 'describe') {
60
53
  describeNestingLevel++;
61
54
  return;
62
55
  }
63
-
64
56
  const funcNode = node.callee.type === _utils.AST_NODE_TYPES.TaggedTemplateExpression ? node.callee.tag : node.callee.type === _utils.AST_NODE_TYPES.CallExpression ? node.callee.callee : node.callee;
65
-
66
57
  if (jestFnCall.type === 'test' && describeNestingLevel === 0 && !jestFnCall.name.endsWith(testKeyword)) {
67
58
  const oppositeTestKeyword = getOppositeTestKeyword(testKeyword);
68
59
  context.report({
@@ -75,7 +66,6 @@ var _default = (0, _utils2.createRule)({
75
66
  fix: buildFixer(funcNode, jestFnCall.name, testKeyword)
76
67
  });
77
68
  }
78
-
79
69
  if (jestFnCall.type === 'test' && describeNestingLevel > 0 && !jestFnCall.name.endsWith(testKeywordWithinDescribe)) {
80
70
  const oppositeTestKeyword = getOppositeTestKeyword(testKeywordWithinDescribe);
81
71
  context.report({
@@ -89,32 +79,24 @@ var _default = (0, _utils2.createRule)({
89
79
  });
90
80
  }
91
81
  },
92
-
93
82
  'CallExpression:exit'(node) {
94
83
  if ((0, _utils2.isTypeOfJestFnCall)(node, context, ['describe'])) {
95
84
  describeNestingLevel--;
96
85
  }
97
86
  }
98
-
99
87
  };
100
88
  }
101
-
102
89
  });
103
-
104
90
  exports.default = _default;
105
-
106
91
  function getPreferredNodeName(nodeName, preferredTestKeyword) {
107
92
  if (nodeName === _utils2.TestCaseName.fit) {
108
93
  return 'test.only';
109
94
  }
110
-
111
95
  return nodeName.startsWith('f') || nodeName.startsWith('x') ? nodeName.charAt(0) + preferredTestKeyword : preferredTestKeyword;
112
96
  }
113
-
114
97
  function getOppositeTestKeyword(test) {
115
98
  if (test === _utils2.TestCaseName.test) {
116
99
  return _utils2.TestCaseName.it;
117
100
  }
118
-
119
101
  return _utils2.TestCaseName.test;
120
102
  }
@@ -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
  /*
13
10
  * This implementation is adapted from eslint-plugin-jasmine.
14
11
  * MIT license, Remco Haszing.
@@ -27,7 +24,6 @@ function matchesAssertFunctionName(nodeName, patterns) {
27
24
  return x.replace(/\*/gu, '[a-z\\d]*');
28
25
  }).join('\\.')}(\\.|$)`, 'ui').test(nodeName));
29
26
  }
30
-
31
27
  var _default = (0, _utils2.createRule)({
32
28
  name: __filename,
33
29
  meta: {
@@ -63,56 +59,45 @@ var _default = (0, _utils2.createRule)({
63
59
  assertFunctionNames: ['expect'],
64
60
  additionalTestBlockFunctions: []
65
61
  }],
66
-
67
62
  create(context, [{
68
63
  assertFunctionNames = ['expect'],
69
64
  additionalTestBlockFunctions = []
70
65
  }]) {
71
66
  const unchecked = [];
72
-
73
67
  function checkCallExpressionUsed(nodes) {
74
68
  for (const node of nodes) {
75
69
  const index = node.type === _utils.AST_NODE_TYPES.CallExpression ? unchecked.indexOf(node) : -1;
76
-
77
70
  if (node.type === _utils.AST_NODE_TYPES.FunctionDeclaration) {
78
71
  const declaredVariables = context.getDeclaredVariables(node);
79
72
  const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables, context);
80
73
  checkCallExpressionUsed(testCallExpressions);
81
74
  }
82
-
83
75
  if (index !== -1) {
84
76
  unchecked.splice(index, 1);
85
77
  break;
86
78
  }
87
79
  }
88
80
  }
89
-
90
81
  return {
91
82
  CallExpression(node) {
92
83
  const name = (0, _utils2.getNodeName)(node.callee) ?? '';
93
-
94
84
  if ((0, _utils2.isTypeOfJestFnCall)(node, context, ['test']) || additionalTestBlockFunctions.includes(name)) {
95
85
  if (node.callee.type === _utils.AST_NODE_TYPES.MemberExpression && (0, _utils2.isSupportedAccessor)(node.callee.property, 'todo')) {
96
86
  return;
97
87
  }
98
-
99
88
  unchecked.push(node);
100
89
  } else if (matchesAssertFunctionName(name, assertFunctionNames)) {
101
90
  // Return early in case of nested `it` statements.
102
91
  checkCallExpressionUsed(context.getAncestors());
103
92
  }
104
93
  },
105
-
106
94
  'Program:exit'() {
107
95
  unchecked.forEach(node => context.report({
108
96
  messageId: 'noAssertions',
109
97
  node
110
98
  }));
111
99
  }
112
-
113
100
  };
114
101
  }
115
-
116
102
  });
117
-
118
103
  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: {
@@ -35,39 +32,29 @@ var _default = (0, _utils2.createRule)({
35
32
  defaultOptions: [{
36
33
  max: 5
37
34
  }],
38
-
39
35
  create(context, [{
40
36
  max
41
37
  }]) {
42
38
  let count = 0;
43
-
44
39
  const maybeResetCount = node => {
45
40
  var _node$parent;
46
-
47
41
  const isTestFn = ((_node$parent = node.parent) === null || _node$parent === void 0 ? void 0 : _node$parent.type) !== _utils.AST_NODE_TYPES.CallExpression || (0, _utils2.isTypeOfJestFnCall)(node.parent, context, ['test']);
48
-
49
42
  if (isTestFn) {
50
43
  count = 0;
51
44
  }
52
45
  };
53
-
54
46
  return {
55
47
  FunctionExpression: maybeResetCount,
56
48
  'FunctionExpression:exit': maybeResetCount,
57
49
  ArrowFunctionExpression: maybeResetCount,
58
50
  'ArrowFunctionExpression:exit': maybeResetCount,
59
-
60
51
  CallExpression(node) {
61
52
  var _jestFnCall$head$node;
62
-
63
53
  const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
64
-
65
54
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'expect' || ((_jestFnCall$head$node = jestFnCall.head.node.parent) === null || _jestFnCall$head$node === void 0 ? void 0 : _jestFnCall$head$node.type) === _utils.AST_NODE_TYPES.MemberExpression) {
66
55
  return;
67
56
  }
68
-
69
57
  count += 1;
70
-
71
58
  if (count > max) {
72
59
  context.report({
73
60
  node,
@@ -79,10 +66,7 @@ var _default = (0, _utils2.createRule)({
79
66
  });
80
67
  }
81
68
  }
82
-
83
69
  };
84
70
  }
85
-
86
71
  });
87
-
88
72
  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: {
@@ -35,23 +32,18 @@ var _default = (0, _utils2.createRule)({
35
32
  defaultOptions: [{
36
33
  max: 5
37
34
  }],
38
-
39
35
  create(context, [{
40
36
  max
41
37
  }]) {
42
38
  const describeCallbackStack = [];
43
-
44
39
  function pushDescribeCallback(node) {
45
40
  const {
46
41
  parent
47
42
  } = node;
48
-
49
43
  if ((parent === null || parent === void 0 ? void 0 : parent.type) !== _utils.AST_NODE_TYPES.CallExpression || !(0, _utils2.isTypeOfJestFnCall)(parent, context, ['describe'])) {
50
44
  return;
51
45
  }
52
-
53
46
  describeCallbackStack.push(0);
54
-
55
47
  if (describeCallbackStack.length > max) {
56
48
  context.report({
57
49
  node: parent,
@@ -63,17 +55,14 @@ var _default = (0, _utils2.createRule)({
63
55
  });
64
56
  }
65
57
  }
66
-
67
58
  function popDescribeCallback(node) {
68
59
  const {
69
60
  parent
70
61
  } = node;
71
-
72
62
  if ((parent === null || parent === void 0 ? void 0 : parent.type) === _utils.AST_NODE_TYPES.CallExpression && (0, _utils2.isTypeOfJestFnCall)(parent, context, ['describe'])) {
73
63
  describeCallbackStack.pop();
74
64
  }
75
65
  }
76
-
77
66
  return {
78
67
  FunctionExpression: pushDescribeCallback,
79
68
  'FunctionExpression:exit': popDescribeCallback,
@@ -81,7 +70,5 @@ var _default = (0, _utils2.createRule)({
81
70
  'ArrowFunctionExpression:exit': popDescribeCallback
82
71
  };
83
72
  }
84
-
85
73
  });
86
-
87
74
  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: {
@@ -23,7 +21,6 @@ var _default = (0, _utils.createRule)({
23
21
  schema: []
24
22
  },
25
23
  defaultOptions: [],
26
-
27
24
  create(context) {
28
25
  // map of jest matcher aliases & their canonical names
29
26
  const methodNames = {
@@ -42,16 +39,13 @@ var _default = (0, _utils.createRule)({
42
39
  return {
43
40
  CallExpression(node) {
44
41
  const jestFnCall = (0, _utils.parseJestFnCall)(node, context);
45
-
46
42
  if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) !== 'expect') {
47
43
  return;
48
44
  }
49
-
50
45
  const {
51
46
  matcher
52
47
  } = jestFnCall;
53
48
  const alias = (0, _utils.getAccessorValue)(matcher);
54
-
55
49
  if (alias in methodNames) {
56
50
  const canonical = methodNames[alias];
57
51
  context.report({
@@ -65,10 +59,7 @@ var _default = (0, _utils.createRule)({
65
59
  });
66
60
  }
67
61
  }
68
-
69
62
  };
70
63
  }
71
-
72
64
  });
73
-
74
65
  exports.default = _default;
@@ -4,13 +4,10 @@ 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
  function hasTests(node) {
11
9
  return /^\s*[xf]?(test|it|describe)(\.\w+|\[['"]\w+['"]\])?\s*\(/mu.test(node.value);
12
10
  }
13
-
14
11
  var _default = (0, _utils.createRule)({
15
12
  name: __filename,
16
13
  meta: {
@@ -26,30 +23,23 @@ var _default = (0, _utils.createRule)({
26
23
  type: 'suggestion'
27
24
  },
28
25
  defaultOptions: [],
29
-
30
26
  create(context) {
31
27
  const sourceCode = context.getSourceCode();
32
-
33
28
  function checkNode(node) {
34
29
  if (!hasTests(node)) {
35
30
  return;
36
31
  }
37
-
38
32
  context.report({
39
33
  messageId: 'commentedTests',
40
34
  node
41
35
  });
42
36
  }
43
-
44
37
  return {
45
38
  Program() {
46
39
  const comments = sourceCode.getAllComments();
47
40
  comments.forEach(checkNode);
48
41
  }
49
-
50
42
  };
51
43
  }
52
-
53
44
  });
54
-
55
45
  exports.default = _default;
@@ -4,13 +4,9 @@ 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 isCatchCall = node => node.callee.type === _utils.AST_NODE_TYPES.MemberExpression && (0, _utils2.isSupportedAccessor)(node.callee.property, 'catch');
13
-
14
10
  var _default = (0, _utils2.createRule)({
15
11
  name: __filename,
16
12
  meta: {
@@ -26,46 +22,36 @@ var _default = (0, _utils2.createRule)({
26
22
  schema: []
27
23
  },
28
24
  defaultOptions: [],
29
-
30
25
  create(context) {
31
26
  let conditionalDepth = 0;
32
27
  let inTestCase = false;
33
28
  let inPromiseCatch = false;
34
-
35
29
  const increaseConditionalDepth = () => inTestCase && conditionalDepth++;
36
-
37
30
  const decreaseConditionalDepth = () => inTestCase && conditionalDepth--;
38
-
39
31
  return {
40
32
  FunctionDeclaration(node) {
41
33
  const declaredVariables = context.getDeclaredVariables(node);
42
34
  const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables, context);
43
-
44
35
  if (testCallExpressions.length > 0) {
45
36
  inTestCase = true;
46
37
  }
47
38
  },
48
-
49
39
  CallExpression(node) {
50
40
  const {
51
41
  type: jestFnCallType
52
42
  } = (0, _utils2.parseJestFnCall)(node, context) ?? {};
53
-
54
43
  if (jestFnCallType === 'test') {
55
44
  inTestCase = true;
56
45
  }
57
-
58
46
  if (isCatchCall(node)) {
59
47
  inPromiseCatch = true;
60
48
  }
61
-
62
49
  if (inTestCase && jestFnCallType === 'expect' && conditionalDepth > 0) {
63
50
  context.report({
64
51
  messageId: 'conditionalExpect',
65
52
  node
66
53
  });
67
54
  }
68
-
69
55
  if (inPromiseCatch && jestFnCallType === 'expect') {
70
56
  context.report({
71
57
  messageId: 'conditionalExpect',
@@ -73,17 +59,14 @@ var _default = (0, _utils2.createRule)({
73
59
  });
74
60
  }
75
61
  },
76
-
77
62
  'CallExpression:exit'(node) {
78
63
  if ((0, _utils2.isTypeOfJestFnCall)(node, context, ['test'])) {
79
64
  inTestCase = false;
80
65
  }
81
-
82
66
  if (isCatchCall(node)) {
83
67
  inPromiseCatch = false;
84
68
  }
85
69
  },
86
-
87
70
  CatchClause: increaseConditionalDepth,
88
71
  'CatchClause:exit': decreaseConditionalDepth,
89
72
  IfStatement: increaseConditionalDepth,
@@ -96,7 +79,5 @@ var _default = (0, _utils2.createRule)({
96
79
  'LogicalExpression:exit': decreaseConditionalDepth
97
80
  };
98
81
  }
99
-
100
82
  });
101
-
102
83
  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,10 +20,8 @@ var _default = (0, _utils.createRule)({
22
20
  schema: []
23
21
  },
24
22
  defaultOptions: [],
25
-
26
23
  create(context) {
27
24
  let inTestCase = false;
28
-
29
25
  const maybeReportConditional = node => {
30
26
  if (inTestCase) {
31
27
  context.report({
@@ -34,27 +30,22 @@ var _default = (0, _utils.createRule)({
34
30
  });
35
31
  }
36
32
  };
37
-
38
33
  return {
39
34
  CallExpression(node) {
40
35
  if ((0, _utils.isTypeOfJestFnCall)(node, context, ['test'])) {
41
36
  inTestCase = true;
42
37
  }
43
38
  },
44
-
45
39
  'CallExpression:exit'(node) {
46
40
  if ((0, _utils.isTypeOfJestFnCall)(node, context, ['test'])) {
47
41
  inTestCase = false;
48
42
  }
49
43
  },
50
-
51
44
  IfStatement: maybeReportConditional,
52
45
  SwitchStatement: maybeReportConditional,
53
46
  ConditionalExpression: maybeReportConditional,
54
47
  LogicalExpression: maybeReportConditional
55
48
  };
56
49
  }
57
-
58
50
  });
59
-
60
51
  exports.default = _default;
@@ -4,20 +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 parseJestVersion = rawVersion => {
13
10
  if (typeof rawVersion === 'number') {
14
11
  return rawVersion;
15
12
  }
16
-
17
13
  const [majorVersion] = rawVersion.split('.');
18
14
  return parseInt(majorVersion, 10);
19
15
  };
20
-
21
16
  var _default = (0, _utils2.createRule)({
22
17
  name: __filename,
23
18
  meta: {
@@ -34,12 +29,11 @@ var _default = (0, _utils2.createRule)({
34
29
  fixable: 'code'
35
30
  },
36
31
  defaultOptions: [],
37
-
38
32
  create(context) {
39
33
  var _context$settings, _context$settings$jes;
40
-
41
34
  const jestVersion = parseJestVersion(((_context$settings = context.settings) === null || _context$settings === void 0 ? void 0 : (_context$settings$jes = _context$settings.jest) === null || _context$settings$jes === void 0 ? void 0 : _context$settings$jes.version) || (0, _utils2.detectJestVersion)());
42
- const deprecations = { ...(jestVersion >= 15 && {
35
+ const deprecations = {
36
+ ...(jestVersion >= 15 && {
43
37
  'jest.resetModuleRegistry': 'jest.resetModules'
44
38
  }),
45
39
  ...(jestVersion >= 17 && {
@@ -61,13 +55,10 @@ var _default = (0, _utils2.createRule)({
61
55
  if (node.callee.type !== _utils.AST_NODE_TYPES.MemberExpression) {
62
56
  return;
63
57
  }
64
-
65
58
  const deprecation = (0, _utils2.getNodeName)(node);
66
-
67
59
  if (!deprecation || !(deprecation in deprecations)) {
68
60
  return;
69
61
  }
70
-
71
62
  const replacement = deprecations[deprecation];
72
63
  const {
73
64
  callee
@@ -79,23 +70,16 @@ var _default = (0, _utils2.createRule)({
79
70
  replacement
80
71
  },
81
72
  node,
82
-
83
73
  fix(fixer) {
84
74
  let [name, func] = replacement.split('.');
85
-
86
75
  if (callee.property.type === _utils.AST_NODE_TYPES.Literal) {
87
76
  func = `'${func}'`;
88
77
  }
89
-
90
78
  return [fixer.replaceText(callee.object, name), fixer.replaceText(callee.property, func)];
91
79
  }
92
-
93
80
  });
94
81
  }
95
-
96
82
  };
97
83
  }
98
-
99
84
  });
100
-
101
85
  exports.default = _default;