eslint-plugin-jest 27.9.0 → 28.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -61
- package/docs/rules/no-done-callback.md +1 -1
- package/docs/rules/no-focused-tests.md +1 -1
- package/docs/rules/prefer-equality-matcher.md +1 -1
- package/docs/rules/prefer-expect-assertions.md +1 -1
- package/docs/rules/prefer-strict-equal.md +1 -1
- package/docs/rules/unbound-method.md +3 -3
- package/lib/index.js +29 -13
- package/lib/rules/max-expects.js +2 -4
- package/lib/rules/no-alias-methods.js +1 -1
- package/lib/rules/no-deprecated-functions.js +1 -2
- package/lib/rules/no-done-callback.js +4 -6
- package/lib/rules/no-duplicate-hooks.js +3 -4
- package/lib/rules/no-focused-tests.js +1 -1
- package/lib/rules/no-hooks.js +1 -1
- package/lib/rules/no-interpolation-in-snapshots.js +1 -1
- package/lib/rules/no-large-snapshots.js +1 -1
- package/lib/rules/no-restricted-jest-methods.js +1 -1
- package/lib/rules/no-restricted-matchers.js +1 -1
- package/lib/rules/no-standalone-expect.js +4 -6
- package/lib/rules/no-test-prefixes.js +1 -1
- package/lib/rules/no-untyped-mock-factory.js +1 -1
- package/lib/rules/prefer-called-with.js +1 -1
- package/lib/rules/prefer-comparison-matcher.js +3 -3
- package/lib/rules/prefer-equality-matcher.js +3 -3
- package/lib/rules/prefer-expect-assertions.js +5 -7
- package/lib/rules/prefer-expect-resolves.js +3 -3
- package/lib/rules/prefer-hooks-in-order.js +1 -1
- package/lib/rules/prefer-mock-promise-shorthand.js +2 -3
- package/lib/rules/prefer-snapshot-hint.js +2 -2
- package/lib/rules/prefer-spy-on.js +1 -2
- package/lib/rules/prefer-strict-equal.js +1 -1
- package/lib/rules/prefer-to-be.js +2 -3
- package/lib/rules/prefer-to-contain.js +2 -2
- package/lib/rules/prefer-to-have-length.js +3 -3
- package/lib/rules/prefer-todo.js +1 -1
- package/lib/rules/require-hook.js +1 -2
- package/lib/rules/require-to-throw-message.js +1 -1
- package/lib/rules/unbound-method.js +6 -7
- package/lib/rules/utils/misc.js +1 -1
- package/lib/rules/utils/parseJestFnCall.js +8 -16
- package/lib/rules/valid-describe-callback.js +1 -1
- package/lib/rules/valid-expect-in-promise.js +6 -8
- package/lib/rules/valid-expect.js +6 -11
- package/lib/rules/valid-title.js +1 -1
- package/package.json +7 -7
- package/docs/rules/no-if.md +0 -58
- package/lib/rules/no-if.js +0 -86
package/lib/rules/no-if.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _utils = require("@typescript-eslint/utils");
|
|
8
|
-
var _utils2 = require("./utils");
|
|
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']);
|
|
10
|
-
const isTestFunctionExpression = node => node.parent !== undefined && node.parent.type === _utils.AST_NODE_TYPES.CallExpression && testCaseNames.has((0, _utils2.getNodeName)(node.parent.callee));
|
|
11
|
-
const conditionName = {
|
|
12
|
-
[_utils.AST_NODE_TYPES.ConditionalExpression]: 'conditional',
|
|
13
|
-
[_utils.AST_NODE_TYPES.SwitchStatement]: 'switch',
|
|
14
|
-
[_utils.AST_NODE_TYPES.IfStatement]: 'if'
|
|
15
|
-
};
|
|
16
|
-
var _default = exports.default = (0, _utils2.createRule)({
|
|
17
|
-
name: __filename,
|
|
18
|
-
meta: {
|
|
19
|
-
docs: {
|
|
20
|
-
description: 'Disallow conditional logic',
|
|
21
|
-
category: 'Best Practices',
|
|
22
|
-
recommended: false
|
|
23
|
-
},
|
|
24
|
-
messages: {
|
|
25
|
-
conditionalInTest: 'Test should not contain {{ condition }} statements'
|
|
26
|
-
},
|
|
27
|
-
deprecated: true,
|
|
28
|
-
replacedBy: ['no-conditional-in-test'],
|
|
29
|
-
schema: [],
|
|
30
|
-
type: 'suggestion'
|
|
31
|
-
},
|
|
32
|
-
defaultOptions: [],
|
|
33
|
-
create(context) {
|
|
34
|
-
const stack = [];
|
|
35
|
-
function validate(node) {
|
|
36
|
-
const lastElementInStack = stack[stack.length - 1];
|
|
37
|
-
if (stack.length === 0 || !lastElementInStack) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
context.report({
|
|
41
|
-
data: {
|
|
42
|
-
condition: conditionName[node.type]
|
|
43
|
-
},
|
|
44
|
-
messageId: 'conditionalInTest',
|
|
45
|
-
node
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
CallExpression(node) {
|
|
50
|
-
const jestFnCall = (0, _utils2.parseJestFnCall)(node, context);
|
|
51
|
-
if ((jestFnCall === null || jestFnCall === void 0 ? void 0 : jestFnCall.type) === 'test') {
|
|
52
|
-
stack.push(true);
|
|
53
|
-
if (jestFnCall.members.some(s => (0, _utils2.getAccessorValue)(s) === 'each')) {
|
|
54
|
-
stack.push(true);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
FunctionExpression(node) {
|
|
59
|
-
stack.push(isTestFunctionExpression(node));
|
|
60
|
-
},
|
|
61
|
-
FunctionDeclaration(node) {
|
|
62
|
-
const declaredVariables = (0, _utils2.getDeclaredVariables)(context, node);
|
|
63
|
-
const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables, context);
|
|
64
|
-
stack.push(testCallExpressions.length > 0);
|
|
65
|
-
},
|
|
66
|
-
ArrowFunctionExpression(node) {
|
|
67
|
-
stack.push(isTestFunctionExpression(node));
|
|
68
|
-
},
|
|
69
|
-
IfStatement: validate,
|
|
70
|
-
SwitchStatement: validate,
|
|
71
|
-
ConditionalExpression: validate,
|
|
72
|
-
'CallExpression:exit'() {
|
|
73
|
-
stack.pop();
|
|
74
|
-
},
|
|
75
|
-
'FunctionExpression:exit'() {
|
|
76
|
-
stack.pop();
|
|
77
|
-
},
|
|
78
|
-
'FunctionDeclaration:exit'() {
|
|
79
|
-
stack.pop();
|
|
80
|
-
},
|
|
81
|
-
'ArrowFunctionExpression:exit'() {
|
|
82
|
-
stack.pop();
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
});
|