eslint-plugin-jest 25.7.0 → 26.0.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.
- package/lib/rules/consistent-test-it.js +20 -20
- package/lib/rules/expect-expect.js +9 -9
- package/lib/rules/max-nested-describe.js +5 -5
- package/lib/rules/no-conditional-expect.js +9 -9
- package/lib/rules/no-deprecated-functions.js +6 -6
- package/lib/rules/no-done-callback.js +10 -10
- package/lib/rules/no-export.js +6 -6
- package/lib/rules/no-focused-tests.js +11 -11
- package/lib/rules/no-if.js +11 -11
- package/lib/rules/no-interpolation-in-snapshots.js +6 -6
- package/lib/rules/no-jasmine-globals.js +10 -10
- package/lib/rules/no-large-snapshots.js +8 -8
- package/lib/rules/no-standalone-expect.js +14 -14
- package/lib/rules/no-test-prefixes.js +6 -6
- package/lib/rules/no-test-return-statement.js +8 -8
- package/lib/rules/prefer-comparison-matcher.js +10 -10
- package/lib/rules/prefer-equality-matcher.js +10 -10
- package/lib/rules/prefer-expect-assertions.js +12 -12
- package/lib/rules/prefer-expect-resolves.js +4 -4
- package/lib/rules/prefer-spy-on.js +9 -9
- package/lib/rules/prefer-to-be.js +15 -15
- package/lib/rules/prefer-to-contain.js +11 -11
- package/lib/rules/prefer-to-have-length.js +6 -6
- package/lib/rules/prefer-todo.js +9 -9
- package/lib/rules/require-hook.js +12 -12
- package/lib/rules/utils.js +27 -27
- package/lib/rules/valid-describe-callback.js +9 -9
- package/lib/rules/valid-expect-in-promise.js +44 -44
- package/lib/rules/valid-expect.js +18 -18
- package/lib/rules/valid-title.js +14 -14
- package/package.json +3 -3
- package/CHANGELOG.md +0 -846
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
const buildFixer = (callee, nodeName, preferredTestKeyword) => fixer => [fixer.replaceText(callee.type ===
|
|
12
|
+
const buildFixer = (callee, nodeName, preferredTestKeyword) => fixer => [fixer.replaceText(callee.type === _utils.AST_NODE_TYPES.MemberExpression ? callee.object : callee, getPreferredNodeName(nodeName, preferredTestKeyword))];
|
|
13
13
|
|
|
14
|
-
var _default = (0,
|
|
14
|
+
var _default = (0, _utils2.createRule)({
|
|
15
15
|
name: __filename,
|
|
16
16
|
meta: {
|
|
17
17
|
docs: {
|
|
@@ -28,10 +28,10 @@ var _default = (0, _utils.createRule)({
|
|
|
28
28
|
type: 'object',
|
|
29
29
|
properties: {
|
|
30
30
|
fn: {
|
|
31
|
-
enum: [
|
|
31
|
+
enum: [_utils2.TestCaseName.it, _utils2.TestCaseName.test]
|
|
32
32
|
},
|
|
33
33
|
withinDescribe: {
|
|
34
|
-
enum: [
|
|
34
|
+
enum: [_utils2.TestCaseName.it, _utils2.TestCaseName.test]
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
additionalProperties: false
|
|
@@ -39,30 +39,30 @@ var _default = (0, _utils.createRule)({
|
|
|
39
39
|
type: 'suggestion'
|
|
40
40
|
},
|
|
41
41
|
defaultOptions: [{
|
|
42
|
-
fn:
|
|
43
|
-
withinDescribe:
|
|
42
|
+
fn: _utils2.TestCaseName.test,
|
|
43
|
+
withinDescribe: _utils2.TestCaseName.it
|
|
44
44
|
}],
|
|
45
45
|
|
|
46
46
|
create(context) {
|
|
47
47
|
const configObj = context.options[0] || {};
|
|
48
|
-
const testKeyword = configObj.fn ||
|
|
49
|
-
const testKeywordWithinDescribe = configObj.withinDescribe || configObj.fn ||
|
|
48
|
+
const testKeyword = configObj.fn || _utils2.TestCaseName.test;
|
|
49
|
+
const testKeywordWithinDescribe = configObj.withinDescribe || configObj.fn || _utils2.TestCaseName.it;
|
|
50
50
|
let describeNestingLevel = 0;
|
|
51
51
|
return {
|
|
52
52
|
CallExpression(node) {
|
|
53
|
-
const nodeName = (0,
|
|
53
|
+
const nodeName = (0, _utils2.getNodeName)(node.callee);
|
|
54
54
|
|
|
55
55
|
if (!nodeName) {
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
if ((0,
|
|
59
|
+
if ((0, _utils2.isDescribeCall)(node)) {
|
|
60
60
|
describeNestingLevel++;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
const funcNode = node.callee.type ===
|
|
63
|
+
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;
|
|
64
64
|
|
|
65
|
-
if ((0,
|
|
65
|
+
if ((0, _utils2.isTestCaseCall)(node) && describeNestingLevel === 0 && !nodeName.includes(testKeyword)) {
|
|
66
66
|
const oppositeTestKeyword = getOppositeTestKeyword(testKeyword);
|
|
67
67
|
context.report({
|
|
68
68
|
messageId: 'consistentMethod',
|
|
@@ -75,7 +75,7 @@ var _default = (0, _utils.createRule)({
|
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
if ((0,
|
|
78
|
+
if ((0, _utils2.isTestCaseCall)(node) && describeNestingLevel > 0 && !nodeName.includes(testKeywordWithinDescribe)) {
|
|
79
79
|
const oppositeTestKeyword = getOppositeTestKeyword(testKeywordWithinDescribe);
|
|
80
80
|
context.report({
|
|
81
81
|
messageId: 'consistentMethodWithinDescribe',
|
|
@@ -90,7 +90,7 @@ var _default = (0, _utils.createRule)({
|
|
|
90
90
|
},
|
|
91
91
|
|
|
92
92
|
'CallExpression:exit'(node) {
|
|
93
|
-
if ((0,
|
|
93
|
+
if ((0, _utils2.isDescribeCall)(node)) {
|
|
94
94
|
describeNestingLevel--;
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -103,7 +103,7 @@ var _default = (0, _utils.createRule)({
|
|
|
103
103
|
exports.default = _default;
|
|
104
104
|
|
|
105
105
|
function getPreferredNodeName(nodeName, preferredTestKeyword) {
|
|
106
|
-
if (nodeName ===
|
|
106
|
+
if (nodeName === _utils2.TestCaseName.fit) {
|
|
107
107
|
return 'test.only';
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -111,9 +111,9 @@ function getPreferredNodeName(nodeName, preferredTestKeyword) {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
function getOppositeTestKeyword(test) {
|
|
114
|
-
if (test ===
|
|
115
|
-
return
|
|
114
|
+
if (test === _utils2.TestCaseName.test) {
|
|
115
|
+
return _utils2.TestCaseName.it;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
return
|
|
118
|
+
return _utils2.TestCaseName.test;
|
|
119
119
|
}
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
12
|
/*
|
|
13
13
|
* This implementation is adapted from eslint-plugin-jasmine.
|
|
@@ -28,7 +28,7 @@ function matchesAssertFunctionName(nodeName, patterns) {
|
|
|
28
28
|
}).join('\\.')}(\\.|$)`, 'ui').test(nodeName));
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
var _default = (0,
|
|
31
|
+
var _default = (0, _utils2.createRule)({
|
|
32
32
|
name: __filename,
|
|
33
33
|
meta: {
|
|
34
34
|
docs: {
|
|
@@ -72,11 +72,11 @@ var _default = (0, _utils.createRule)({
|
|
|
72
72
|
|
|
73
73
|
function checkCallExpressionUsed(nodes) {
|
|
74
74
|
for (const node of nodes) {
|
|
75
|
-
const index = node.type ===
|
|
75
|
+
const index = node.type === _utils.AST_NODE_TYPES.CallExpression ? unchecked.indexOf(node) : -1;
|
|
76
76
|
|
|
77
|
-
if (node.type ===
|
|
77
|
+
if (node.type === _utils.AST_NODE_TYPES.FunctionDeclaration) {
|
|
78
78
|
const declaredVariables = context.getDeclaredVariables(node);
|
|
79
|
-
const testCallExpressions = (0,
|
|
79
|
+
const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables);
|
|
80
80
|
checkCallExpressionUsed(testCallExpressions);
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -91,10 +91,10 @@ var _default = (0, _utils.createRule)({
|
|
|
91
91
|
CallExpression(node) {
|
|
92
92
|
var _getNodeName;
|
|
93
93
|
|
|
94
|
-
const name = (_getNodeName = (0,
|
|
94
|
+
const name = (_getNodeName = (0, _utils2.getNodeName)(node.callee)) !== null && _getNodeName !== void 0 ? _getNodeName : '';
|
|
95
95
|
|
|
96
|
-
if ((0,
|
|
97
|
-
if (node.callee.type ===
|
|
96
|
+
if ((0, _utils2.isTestCaseCall)(node) || additionalTestBlockFunctions.includes(name)) {
|
|
97
|
+
if (node.callee.type === _utils.AST_NODE_TYPES.MemberExpression && (0, _utils2.isSupportedAccessor)(node.callee.property, 'todo')) {
|
|
98
98
|
return;
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
var _default = (0,
|
|
12
|
+
var _default = (0, _utils2.createRule)({
|
|
13
13
|
name: __filename,
|
|
14
14
|
meta: {
|
|
15
15
|
docs: {
|
|
@@ -46,7 +46,7 @@ var _default = (0, _utils.createRule)({
|
|
|
46
46
|
parent
|
|
47
47
|
} = node;
|
|
48
48
|
|
|
49
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.type) !==
|
|
49
|
+
if ((parent === null || parent === void 0 ? void 0 : parent.type) !== _utils.AST_NODE_TYPES.CallExpression || !(0, _utils2.isDescribeCall)(parent)) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -69,7 +69,7 @@ var _default = (0, _utils.createRule)({
|
|
|
69
69
|
parent
|
|
70
70
|
} = node;
|
|
71
71
|
|
|
72
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.type) ===
|
|
72
|
+
if ((parent === null || parent === void 0 ? void 0 : parent.type) === _utils.AST_NODE_TYPES.CallExpression && (0, _utils2.isDescribeCall)(parent)) {
|
|
73
73
|
describeCallbackStack.pop();
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
const isCatchCall = node => node.callee.type ===
|
|
12
|
+
const isCatchCall = node => node.callee.type === _utils.AST_NODE_TYPES.MemberExpression && (0, _utils2.isSupportedAccessor)(node.callee.property, 'catch');
|
|
13
13
|
|
|
14
|
-
var _default = (0,
|
|
14
|
+
var _default = (0, _utils2.createRule)({
|
|
15
15
|
name: __filename,
|
|
16
16
|
meta: {
|
|
17
17
|
docs: {
|
|
@@ -39,7 +39,7 @@ var _default = (0, _utils.createRule)({
|
|
|
39
39
|
return {
|
|
40
40
|
FunctionDeclaration(node) {
|
|
41
41
|
const declaredVariables = context.getDeclaredVariables(node);
|
|
42
|
-
const testCallExpressions = (0,
|
|
42
|
+
const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables);
|
|
43
43
|
|
|
44
44
|
if (testCallExpressions.length > 0) {
|
|
45
45
|
inTestCase = true;
|
|
@@ -47,7 +47,7 @@ var _default = (0, _utils.createRule)({
|
|
|
47
47
|
},
|
|
48
48
|
|
|
49
49
|
CallExpression(node) {
|
|
50
|
-
if ((0,
|
|
50
|
+
if ((0, _utils2.isTestCaseCall)(node)) {
|
|
51
51
|
inTestCase = true;
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -55,14 +55,14 @@ var _default = (0, _utils.createRule)({
|
|
|
55
55
|
inPromiseCatch = true;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
if (inTestCase && (0,
|
|
58
|
+
if (inTestCase && (0, _utils2.isExpectCall)(node) && conditionalDepth > 0) {
|
|
59
59
|
context.report({
|
|
60
60
|
messageId: 'conditionalExpect',
|
|
61
61
|
node
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
if (inPromiseCatch && (0,
|
|
65
|
+
if (inPromiseCatch && (0, _utils2.isExpectCall)(node)) {
|
|
66
66
|
context.report({
|
|
67
67
|
messageId: 'conditionalExpect',
|
|
68
68
|
node
|
|
@@ -71,7 +71,7 @@ var _default = (0, _utils.createRule)({
|
|
|
71
71
|
},
|
|
72
72
|
|
|
73
73
|
'CallExpression:exit'(node) {
|
|
74
|
-
if ((0,
|
|
74
|
+
if ((0, _utils2.isTestCaseCall)(node)) {
|
|
75
75
|
inTestCase = false;
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
10
|
var _detectJestVersion = require("./detectJestVersion");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _utils2 = require("./utils");
|
|
13
13
|
|
|
14
14
|
const parseJestVersion = rawVersion => {
|
|
15
15
|
if (typeof rawVersion === 'number') {
|
|
@@ -20,7 +20,7 @@ const parseJestVersion = rawVersion => {
|
|
|
20
20
|
return parseInt(majorVersion, 10);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
var _default = (0,
|
|
23
|
+
var _default = (0, _utils2.createRule)({
|
|
24
24
|
name: __filename,
|
|
25
25
|
meta: {
|
|
26
26
|
docs: {
|
|
@@ -60,11 +60,11 @@ var _default = (0, _utils.createRule)({
|
|
|
60
60
|
};
|
|
61
61
|
return {
|
|
62
62
|
CallExpression(node) {
|
|
63
|
-
if (node.callee.type !==
|
|
63
|
+
if (node.callee.type !== _utils.AST_NODE_TYPES.MemberExpression) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
const deprecation = (0,
|
|
67
|
+
const deprecation = (0, _utils2.getNodeName)(node);
|
|
68
68
|
|
|
69
69
|
if (!deprecation || !(deprecation in deprecations)) {
|
|
70
70
|
return;
|
|
@@ -85,7 +85,7 @@ var _default = (0, _utils.createRule)({
|
|
|
85
85
|
fix(fixer) {
|
|
86
86
|
let [name, func] = replacement.split('.');
|
|
87
87
|
|
|
88
|
-
if (callee.property.type ===
|
|
88
|
+
if (callee.property.type === _utils.AST_NODE_TYPES.Literal) {
|
|
89
89
|
func = `'${func}'`;
|
|
90
90
|
}
|
|
91
91
|
|
|
@@ -5,27 +5,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
12
|
const findCallbackArg = (node, isJestEach) => {
|
|
13
13
|
if (isJestEach) {
|
|
14
14
|
return node.arguments[1];
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
if ((0,
|
|
17
|
+
if ((0, _utils2.isHook)(node) && node.arguments.length >= 1) {
|
|
18
18
|
return node.arguments[0];
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
if ((0,
|
|
21
|
+
if ((0, _utils2.isTestCaseCall)(node) && node.arguments.length >= 2) {
|
|
22
22
|
return node.arguments[1];
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
return null;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
var _default = (0,
|
|
28
|
+
var _default = (0, _utils2.createRule)({
|
|
29
29
|
name: __filename,
|
|
30
30
|
meta: {
|
|
31
31
|
docs: {
|
|
@@ -51,9 +51,9 @@ var _default = (0, _utils.createRule)({
|
|
|
51
51
|
var _getNodeName$endsWith, _getNodeName;
|
|
52
52
|
|
|
53
53
|
// done is the second argument for it.each, not the first
|
|
54
|
-
const isJestEach = (_getNodeName$endsWith = (_getNodeName = (0,
|
|
54
|
+
const isJestEach = (_getNodeName$endsWith = (_getNodeName = (0, _utils2.getNodeName)(node.callee)) === null || _getNodeName === void 0 ? void 0 : _getNodeName.endsWith('.each')) !== null && _getNodeName$endsWith !== void 0 ? _getNodeName$endsWith : false;
|
|
55
55
|
|
|
56
|
-
if (isJestEach && node.callee.type !==
|
|
56
|
+
if (isJestEach && node.callee.type !== _utils.AST_NODE_TYPES.TaggedTemplateExpression) {
|
|
57
57
|
// isJestEach but not a TaggedTemplateExpression, so this must be
|
|
58
58
|
// the `jest.each([])()` syntax which this rule doesn't support due
|
|
59
59
|
// to its complexity (see jest-community/eslint-plugin-jest#710)
|
|
@@ -63,13 +63,13 @@ var _default = (0, _utils.createRule)({
|
|
|
63
63
|
const callback = findCallbackArg(node, isJestEach);
|
|
64
64
|
const callbackArgIndex = Number(isJestEach);
|
|
65
65
|
|
|
66
|
-
if (!callback || !(0,
|
|
66
|
+
if (!callback || !(0, _utils2.isFunction)(callback) || callback.params.length !== 1 + callbackArgIndex) {
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
const argument = callback.params[callbackArgIndex];
|
|
71
71
|
|
|
72
|
-
if (argument.type !==
|
|
72
|
+
if (argument.type !== _utils.AST_NODE_TYPES.Identifier) {
|
|
73
73
|
context.report({
|
|
74
74
|
node: argument,
|
|
75
75
|
messageId: 'noDoneCallback'
|
|
@@ -126,7 +126,7 @@ var _default = (0, _utils.createRule)({
|
|
|
126
126
|
let afterReplacement = ')';
|
|
127
127
|
let replaceBefore = true;
|
|
128
128
|
|
|
129
|
-
if (body.type ===
|
|
129
|
+
if (body.type === _utils.AST_NODE_TYPES.BlockStatement) {
|
|
130
130
|
const keyword = 'return';
|
|
131
131
|
beforeReplacement = `${keyword} ${beforeReplacement}{`;
|
|
132
132
|
afterReplacement += '}';
|
package/lib/rules/no-export.js
CHANGED
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
var _default = (0,
|
|
12
|
+
var _default = (0, _utils2.createRule)({
|
|
13
13
|
name: __filename,
|
|
14
14
|
meta: {
|
|
15
15
|
docs: {
|
|
@@ -41,7 +41,7 @@ var _default = (0, _utils.createRule)({
|
|
|
41
41
|
},
|
|
42
42
|
|
|
43
43
|
CallExpression(node) {
|
|
44
|
-
if ((0,
|
|
44
|
+
if ((0, _utils2.isTestCaseCall)(node)) {
|
|
45
45
|
hasTestCase = true;
|
|
46
46
|
}
|
|
47
47
|
},
|
|
@@ -56,14 +56,14 @@ var _default = (0, _utils.createRule)({
|
|
|
56
56
|
property
|
|
57
57
|
} = node;
|
|
58
58
|
|
|
59
|
-
if (object.type ===
|
|
59
|
+
if (object.type === _utils.AST_NODE_TYPES.MemberExpression) {
|
|
60
60
|
({
|
|
61
61
|
object,
|
|
62
62
|
property
|
|
63
63
|
} = object);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
if ('name' in object && object.name === 'module' && property.type ===
|
|
66
|
+
if ('name' in object && object.name === 'module' && property.type === _utils.AST_NODE_TYPES.Identifier && /^exports?$/u.test(property.name)) {
|
|
67
67
|
exportNodes.push(node);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -5,21 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
12
|
const findOnlyNode = node => {
|
|
13
|
-
const callee = node.callee.type ===
|
|
13
|
+
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;
|
|
14
14
|
|
|
15
|
-
if (callee.type ===
|
|
16
|
-
if (callee.object.type ===
|
|
17
|
-
if ((0,
|
|
15
|
+
if (callee.type === _utils.AST_NODE_TYPES.MemberExpression) {
|
|
16
|
+
if (callee.object.type === _utils.AST_NODE_TYPES.MemberExpression) {
|
|
17
|
+
if ((0, _utils2.isSupportedAccessor)(callee.object.property, 'only')) {
|
|
18
18
|
return callee.object.property;
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
if ((0,
|
|
22
|
+
if ((0, _utils2.isSupportedAccessor)(callee.property, 'only')) {
|
|
23
23
|
return callee.property;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -27,7 +27,7 @@ const findOnlyNode = node => {
|
|
|
27
27
|
return null;
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
var _default = (0,
|
|
30
|
+
var _default = (0, _utils2.createRule)({
|
|
31
31
|
name: __filename,
|
|
32
32
|
meta: {
|
|
33
33
|
docs: {
|
|
@@ -47,11 +47,11 @@ var _default = (0, _utils.createRule)({
|
|
|
47
47
|
defaultOptions: [],
|
|
48
48
|
create: context => ({
|
|
49
49
|
CallExpression(node) {
|
|
50
|
-
if (!(0,
|
|
50
|
+
if (!(0, _utils2.isDescribeCall)(node) && !(0, _utils2.isTestCaseCall)(node)) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
if ((0,
|
|
54
|
+
if ((0, _utils2.getNodeName)(node).startsWith('f')) {
|
|
55
55
|
context.report({
|
|
56
56
|
messageId: 'focusedTest',
|
|
57
57
|
node,
|
|
@@ -74,7 +74,7 @@ var _default = (0, _utils.createRule)({
|
|
|
74
74
|
node: onlyNode,
|
|
75
75
|
suggest: [{
|
|
76
76
|
messageId: 'suggestRemoveFocus',
|
|
77
|
-
fix: fixer => fixer.removeRange([onlyNode.range[0] - 1, onlyNode.range[1] + Number(onlyNode.type !==
|
|
77
|
+
fix: fixer => fixer.removeRange([onlyNode.range[0] - 1, onlyNode.range[1] + Number(onlyNode.type !== _utils.AST_NODE_TYPES.Identifier)])
|
|
78
78
|
}]
|
|
79
79
|
});
|
|
80
80
|
}
|
package/lib/rules/no-if.js
CHANGED
|
@@ -5,21 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
const testCaseNames = new Set([...Object.keys(
|
|
12
|
+
const testCaseNames = new Set([...Object.keys(_utils2.TestCaseName), 'it.only', 'it.concurrent.only', 'it.skip', 'it.concurrent.skip', 'test.only', 'test.concurrent.only', 'test.skip', 'test.concurrent.skip', 'fit.concurrent']);
|
|
13
13
|
|
|
14
|
-
const isTestFunctionExpression = node => node.parent !== undefined && node.parent.type ===
|
|
14
|
+
const isTestFunctionExpression = node => node.parent !== undefined && node.parent.type === _utils.AST_NODE_TYPES.CallExpression && testCaseNames.has((0, _utils2.getNodeName)(node.parent.callee));
|
|
15
15
|
|
|
16
16
|
const conditionName = {
|
|
17
|
-
[
|
|
18
|
-
[
|
|
19
|
-
[
|
|
17
|
+
[_utils.AST_NODE_TYPES.ConditionalExpression]: 'conditional',
|
|
18
|
+
[_utils.AST_NODE_TYPES.SwitchStatement]: 'switch',
|
|
19
|
+
[_utils.AST_NODE_TYPES.IfStatement]: 'if'
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
var _default = (0,
|
|
22
|
+
var _default = (0, _utils2.createRule)({
|
|
23
23
|
name: __filename,
|
|
24
24
|
meta: {
|
|
25
25
|
docs: {
|
|
@@ -56,10 +56,10 @@ var _default = (0, _utils.createRule)({
|
|
|
56
56
|
|
|
57
57
|
return {
|
|
58
58
|
CallExpression(node) {
|
|
59
|
-
if ((0,
|
|
59
|
+
if ((0, _utils2.isTestCaseCall)(node)) {
|
|
60
60
|
stack.push(true);
|
|
61
61
|
|
|
62
|
-
if ((0,
|
|
62
|
+
if ((0, _utils2.getNodeName)(node).endsWith('each')) {
|
|
63
63
|
stack.push(true);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -71,7 +71,7 @@ var _default = (0, _utils.createRule)({
|
|
|
71
71
|
|
|
72
72
|
FunctionDeclaration(node) {
|
|
73
73
|
const declaredVariables = context.getDeclaredVariables(node);
|
|
74
|
-
const testCallExpressions = (0,
|
|
74
|
+
const testCallExpressions = (0, _utils2.getTestCallExpressionsFromDeclaredVariables)(declaredVariables);
|
|
75
75
|
stack.push(testCallExpressions.length > 0);
|
|
76
76
|
},
|
|
77
77
|
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
var _default = (0,
|
|
12
|
+
var _default = (0, _utils2.createRule)({
|
|
13
13
|
name: __filename,
|
|
14
14
|
meta: {
|
|
15
15
|
docs: {
|
|
@@ -28,13 +28,13 @@ var _default = (0, _utils.createRule)({
|
|
|
28
28
|
create(context) {
|
|
29
29
|
return {
|
|
30
30
|
CallExpression(node) {
|
|
31
|
-
if (!(0,
|
|
31
|
+
if (!(0, _utils2.isExpectCall)(node)) {
|
|
32
32
|
return;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const {
|
|
36
36
|
matcher
|
|
37
|
-
} = (0,
|
|
37
|
+
} = (0, _utils2.parseExpectCall)(node);
|
|
38
38
|
|
|
39
39
|
if (!matcher) {
|
|
40
40
|
return;
|
|
@@ -45,7 +45,7 @@ var _default = (0, _utils.createRule)({
|
|
|
45
45
|
|
|
46
46
|
// Check all since the optional 'propertyMatchers' argument might be present
|
|
47
47
|
(_matcher$arguments = matcher.arguments) === null || _matcher$arguments === void 0 ? void 0 : _matcher$arguments.forEach(argument => {
|
|
48
|
-
if (argument.type ===
|
|
48
|
+
if (argument.type === _utils.AST_NODE_TYPES.TemplateLiteral && argument.expressions.length > 0) {
|
|
49
49
|
context.report({
|
|
50
50
|
messageId: 'noInterpolation',
|
|
51
51
|
node: argument
|
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _utils = require("@typescript-eslint/utils");
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _utils2 = require("./utils");
|
|
11
11
|
|
|
12
|
-
var _default = (0,
|
|
12
|
+
var _default = (0, _utils2.createRule)({
|
|
13
13
|
name: __filename,
|
|
14
14
|
meta: {
|
|
15
15
|
docs: {
|
|
@@ -36,14 +36,14 @@ var _default = (0, _utils.createRule)({
|
|
|
36
36
|
const {
|
|
37
37
|
callee
|
|
38
38
|
} = node;
|
|
39
|
-
const calleeName = (0,
|
|
39
|
+
const calleeName = (0, _utils2.getNodeName)(callee);
|
|
40
40
|
|
|
41
41
|
if (!calleeName) {
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (calleeName === 'spyOn' || calleeName === 'spyOnProperty' || calleeName === 'fail' || calleeName === 'pending') {
|
|
46
|
-
if ((0,
|
|
46
|
+
if ((0, _utils2.scopeHasLocalReference)(context.getScope(), calleeName)) {
|
|
47
47
|
// It's a local variable, not a jasmine global.
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
@@ -79,7 +79,7 @@ var _default = (0, _utils.createRule)({
|
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
if (callee.type ===
|
|
82
|
+
if (callee.type === _utils.AST_NODE_TYPES.MemberExpression && calleeName.startsWith('jasmine.')) {
|
|
83
83
|
const functionName = calleeName.replace('jasmine.', '');
|
|
84
84
|
|
|
85
85
|
if (functionName === 'any' || functionName === 'anything' || functionName === 'arrayContaining' || functionName === 'objectContaining' || functionName === 'stringMatching') {
|
|
@@ -127,19 +127,19 @@ var _default = (0, _utils.createRule)({
|
|
|
127
127
|
},
|
|
128
128
|
|
|
129
129
|
MemberExpression(node) {
|
|
130
|
-
if ((0,
|
|
130
|
+
if ((0, _utils2.isSupportedAccessor)(node.object, 'jasmine')) {
|
|
131
131
|
const {
|
|
132
132
|
parent,
|
|
133
133
|
property
|
|
134
134
|
} = node;
|
|
135
135
|
|
|
136
|
-
if (parent && parent.type ===
|
|
137
|
-
if ((0,
|
|
136
|
+
if (parent && parent.type === _utils.AST_NODE_TYPES.AssignmentExpression) {
|
|
137
|
+
if ((0, _utils2.isSupportedAccessor)(property, 'DEFAULT_TIMEOUT_INTERVAL')) {
|
|
138
138
|
const {
|
|
139
139
|
right
|
|
140
140
|
} = parent;
|
|
141
141
|
|
|
142
|
-
if (right.type ===
|
|
142
|
+
if (right.type === _utils.AST_NODE_TYPES.Literal) {
|
|
143
143
|
context.report({
|
|
144
144
|
fix: fixer => [fixer.replaceText(parent, `jest.setTimeout(${right.value})`)],
|
|
145
145
|
node,
|