eslint-plugin-jest 25.0.0-next.4 → 25.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/CHANGELOG.md +138 -0
- package/README.md +71 -49
- package/docs/rules/max-nested-describe.md +4 -5
- package/docs/rules/no-conditional-expect.md +57 -3
- package/docs/rules/no-deprecated-functions.md +5 -0
- package/docs/rules/no-done-callback.md +3 -3
- package/docs/rules/no-standalone-expect.md +3 -3
- package/docs/rules/no-test-return-statement.md +1 -2
- package/docs/rules/prefer-expect-resolves.md +53 -0
- package/docs/rules/{lowercase-name.md → prefer-lowercase-title.md} +1 -1
- package/docs/rules/prefer-to-be.md +53 -0
- package/docs/rules/require-hook.md +149 -0
- package/docs/rules/require-top-level-describe.md +28 -0
- package/docs/rules/{valid-describe.md → valid-describe-callback.md} +1 -1
- package/docs/rules/valid-expect-in-promise.md +55 -14
- package/docs/rules/valid-title.md +30 -2
- package/lib/index.js +2 -3
- package/lib/rules/detectJestVersion.js +29 -0
- package/lib/rules/no-deprecated-functions.js +9 -27
- package/lib/rules/no-identical-title.js +3 -3
- package/lib/rules/no-large-snapshots.js +1 -3
- package/lib/rules/prefer-expect-resolves.js +48 -0
- package/lib/rules/{lowercase-name.js → prefer-lowercase-title.js} +20 -1
- package/lib/rules/prefer-to-be.js +129 -0
- package/lib/rules/require-hook.js +87 -0
- package/lib/rules/require-top-level-describe.js +40 -6
- package/lib/rules/utils.js +6 -4
- package/lib/rules/{valid-describe.js → valid-describe-callback.js} +0 -0
- package/lib/rules/valid-expect-in-promise.js +252 -68
- package/lib/rules/valid-expect.js +10 -4
- package/lib/rules/valid-title.js +47 -47
- package/package.json +5 -5
- package/docs/rules/prefer-to-be-null.md +0 -33
- package/docs/rules/prefer-to-be-undefined.md +0 -33
- package/lib/rules/prefer-to-be-null.js +0 -67
- package/lib/rules/prefer-to-be-undefined.js +0 -67
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Suggest using `toBeUndefined()` (`prefer-to-be-undefined`)
|
|
2
|
-
|
|
3
|
-
In order to have a better failure message, `toBeUndefined()` should be used upon
|
|
4
|
-
asserting expectations on undefined value.
|
|
5
|
-
|
|
6
|
-
## Rule details
|
|
7
|
-
|
|
8
|
-
This rule triggers a warning if `toBe()`, `toEqual()` or `toStrictEqual()` is
|
|
9
|
-
used to assert an undefined value.
|
|
10
|
-
|
|
11
|
-
```js
|
|
12
|
-
expect(undefined).toBe(undefined);
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
This rule is enabled by default.
|
|
16
|
-
|
|
17
|
-
### Default configuration
|
|
18
|
-
|
|
19
|
-
The following patterns are considered warnings:
|
|
20
|
-
|
|
21
|
-
```js
|
|
22
|
-
expect(undefined).toBe(undefined);
|
|
23
|
-
|
|
24
|
-
expect(undefined).toEqual(undefined);
|
|
25
|
-
|
|
26
|
-
expect(undefined).toStrictEqual(undefined);
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
The following pattern is not warning:
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
expect(undefined).toBeUndefined();
|
|
33
|
-
```
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _experimentalUtils = require("@typescript-eslint/experimental-utils");
|
|
9
|
-
|
|
10
|
-
var _utils = require("./utils");
|
|
11
|
-
|
|
12
|
-
const isNullLiteral = node => node.type === _experimentalUtils.AST_NODE_TYPES.Literal && node.value === null;
|
|
13
|
-
/**
|
|
14
|
-
* Checks if the given `ParsedExpectMatcher` is a call to one of the equality matchers,
|
|
15
|
-
* with a `null` literal as the sole argument.
|
|
16
|
-
*
|
|
17
|
-
* @param {ParsedExpectMatcher} matcher
|
|
18
|
-
*
|
|
19
|
-
* @return {matcher is ParsedEqualityMatcherCall<MaybeTypeCast<NullLiteral>>}
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const isNullEqualityMatcher = matcher => (0, _utils.isParsedEqualityMatcherCall)(matcher) && isNullLiteral((0, _utils.followTypeAssertionChain)(matcher.arguments[0]));
|
|
24
|
-
|
|
25
|
-
var _default = (0, _utils.createRule)({
|
|
26
|
-
name: __filename,
|
|
27
|
-
meta: {
|
|
28
|
-
docs: {
|
|
29
|
-
category: 'Best Practices',
|
|
30
|
-
description: 'Suggest using `toBeNull()`',
|
|
31
|
-
recommended: false
|
|
32
|
-
},
|
|
33
|
-
messages: {
|
|
34
|
-
useToBeNull: 'Use toBeNull() instead'
|
|
35
|
-
},
|
|
36
|
-
fixable: 'code',
|
|
37
|
-
type: 'suggestion',
|
|
38
|
-
schema: []
|
|
39
|
-
},
|
|
40
|
-
defaultOptions: [],
|
|
41
|
-
|
|
42
|
-
create(context) {
|
|
43
|
-
return {
|
|
44
|
-
CallExpression(node) {
|
|
45
|
-
if (!(0, _utils.isExpectCall)(node)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const {
|
|
50
|
-
matcher
|
|
51
|
-
} = (0, _utils.parseExpectCall)(node);
|
|
52
|
-
|
|
53
|
-
if (matcher && isNullEqualityMatcher(matcher)) {
|
|
54
|
-
context.report({
|
|
55
|
-
fix: fixer => [fixer.replaceText(matcher.node.property, 'toBeNull'), fixer.remove(matcher.arguments[0])],
|
|
56
|
-
messageId: 'useToBeNull',
|
|
57
|
-
node: matcher.node.property
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
exports.default = _default;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _experimentalUtils = require("@typescript-eslint/experimental-utils");
|
|
9
|
-
|
|
10
|
-
var _utils = require("./utils");
|
|
11
|
-
|
|
12
|
-
const isUndefinedIdentifier = node => node.type === _experimentalUtils.AST_NODE_TYPES.Identifier && node.name === 'undefined';
|
|
13
|
-
/**
|
|
14
|
-
* Checks if the given `ParsedExpectMatcher` is a call to one of the equality matchers,
|
|
15
|
-
* with a `undefined` identifier as the sole argument.
|
|
16
|
-
*
|
|
17
|
-
* @param {ParsedExpectMatcher} matcher
|
|
18
|
-
*
|
|
19
|
-
* @return {matcher is ParsedEqualityMatcherCall<MaybeTypeCast<UndefinedIdentifier>>}
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const isUndefinedEqualityMatcher = matcher => (0, _utils.isParsedEqualityMatcherCall)(matcher) && isUndefinedIdentifier((0, _utils.followTypeAssertionChain)(matcher.arguments[0]));
|
|
24
|
-
|
|
25
|
-
var _default = (0, _utils.createRule)({
|
|
26
|
-
name: __filename,
|
|
27
|
-
meta: {
|
|
28
|
-
docs: {
|
|
29
|
-
category: 'Best Practices',
|
|
30
|
-
description: 'Suggest using `toBeUndefined()`',
|
|
31
|
-
recommended: false
|
|
32
|
-
},
|
|
33
|
-
messages: {
|
|
34
|
-
useToBeUndefined: 'Use toBeUndefined() instead'
|
|
35
|
-
},
|
|
36
|
-
fixable: 'code',
|
|
37
|
-
type: 'suggestion',
|
|
38
|
-
schema: []
|
|
39
|
-
},
|
|
40
|
-
defaultOptions: [],
|
|
41
|
-
|
|
42
|
-
create(context) {
|
|
43
|
-
return {
|
|
44
|
-
CallExpression(node) {
|
|
45
|
-
if (!(0, _utils.isExpectCall)(node)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const {
|
|
50
|
-
matcher
|
|
51
|
-
} = (0, _utils.parseExpectCall)(node);
|
|
52
|
-
|
|
53
|
-
if (matcher && isUndefinedEqualityMatcher(matcher)) {
|
|
54
|
-
context.report({
|
|
55
|
-
fix: fixer => [fixer.replaceText(matcher.node.property, 'toBeUndefined'), fixer.remove(matcher.arguments[0])],
|
|
56
|
-
messageId: 'useToBeUndefined',
|
|
57
|
-
node: matcher.node.property
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
exports.default = _default;
|