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.
Files changed (36) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/README.md +71 -49
  3. package/docs/rules/max-nested-describe.md +4 -5
  4. package/docs/rules/no-conditional-expect.md +57 -3
  5. package/docs/rules/no-deprecated-functions.md +5 -0
  6. package/docs/rules/no-done-callback.md +3 -3
  7. package/docs/rules/no-standalone-expect.md +3 -3
  8. package/docs/rules/no-test-return-statement.md +1 -2
  9. package/docs/rules/prefer-expect-resolves.md +53 -0
  10. package/docs/rules/{lowercase-name.md → prefer-lowercase-title.md} +1 -1
  11. package/docs/rules/prefer-to-be.md +53 -0
  12. package/docs/rules/require-hook.md +149 -0
  13. package/docs/rules/require-top-level-describe.md +28 -0
  14. package/docs/rules/{valid-describe.md → valid-describe-callback.md} +1 -1
  15. package/docs/rules/valid-expect-in-promise.md +55 -14
  16. package/docs/rules/valid-title.md +30 -2
  17. package/lib/index.js +2 -3
  18. package/lib/rules/detectJestVersion.js +29 -0
  19. package/lib/rules/no-deprecated-functions.js +9 -27
  20. package/lib/rules/no-identical-title.js +3 -3
  21. package/lib/rules/no-large-snapshots.js +1 -3
  22. package/lib/rules/prefer-expect-resolves.js +48 -0
  23. package/lib/rules/{lowercase-name.js → prefer-lowercase-title.js} +20 -1
  24. package/lib/rules/prefer-to-be.js +129 -0
  25. package/lib/rules/require-hook.js +87 -0
  26. package/lib/rules/require-top-level-describe.js +40 -6
  27. package/lib/rules/utils.js +6 -4
  28. package/lib/rules/{valid-describe.js → valid-describe-callback.js} +0 -0
  29. package/lib/rules/valid-expect-in-promise.js +252 -68
  30. package/lib/rules/valid-expect.js +10 -4
  31. package/lib/rules/valid-title.js +47 -47
  32. package/package.json +5 -5
  33. package/docs/rules/prefer-to-be-null.md +0 -33
  34. package/docs/rules/prefer-to-be-undefined.md +0 -33
  35. package/lib/rules/prefer-to-be-null.js +0 -67
  36. 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;