eslint-plugin-jest 27.2.1 → 27.2.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.
Files changed (77) hide show
  1. package/README.md +1 -1
  2. package/docs/rules/no-alias-methods.md +1 -1
  3. package/docs/rules/no-hooks.md +1 -1
  4. package/docs/rules/no-large-snapshots.md +4 -0
  5. package/docs/rules/require-hook.md +2 -6
  6. package/docs/rules/valid-expect.md +2 -2
  7. package/lib/index.js +2 -0
  8. package/lib/processors/__tests__/snapshot-processor.test.js +36 -0
  9. package/lib/rules/__tests__/consistent-test-it.test.js +921 -0
  10. package/lib/rules/__tests__/expect-expect.test.js +347 -0
  11. package/lib/rules/__tests__/fixtures/class.ts +13 -0
  12. package/lib/rules/__tests__/fixtures/file.ts +0 -0
  13. package/lib/rules/__tests__/fixtures/foo.ts +1 -0
  14. package/lib/rules/__tests__/fixtures/indent/indent-invalid-fixture-1.js +530 -0
  15. package/lib/rules/__tests__/fixtures/indent/indent-valid-fixture-1.js +530 -0
  16. package/lib/rules/__tests__/fixtures/react.tsx +0 -0
  17. package/lib/rules/__tests__/fixtures/tsconfig-withmeta.json +6 -0
  18. package/lib/rules/__tests__/fixtures/tsconfig.json +16 -0
  19. package/lib/rules/__tests__/fixtures/unstrict/file.ts +0 -0
  20. package/lib/rules/__tests__/fixtures/unstrict/react.tsx +0 -0
  21. package/lib/rules/__tests__/fixtures/unstrict/tsconfig.json +15 -0
  22. package/lib/rules/__tests__/max-expects.test.js +330 -0
  23. package/lib/rules/__tests__/max-nested-describe.test.js +247 -0
  24. package/lib/rules/__tests__/no-alias-methods.test.js +190 -0
  25. package/lib/rules/__tests__/no-commented-out-tests.test.js +213 -0
  26. package/lib/rules/__tests__/no-conditional-expect.test.js +696 -0
  27. package/lib/rules/__tests__/no-conditional-in-test.test.js +777 -0
  28. package/lib/rules/__tests__/no-deprecated-functions.test.js +119 -0
  29. package/lib/rules/__tests__/no-disabled-tests.test.js +241 -0
  30. package/lib/rules/__tests__/no-done-callback.test.js +424 -0
  31. package/lib/rules/__tests__/no-duplicate-hooks.test.js +469 -0
  32. package/lib/rules/__tests__/no-export.test.js +107 -0
  33. package/lib/rules/__tests__/no-focused-tests.test.js +373 -0
  34. package/lib/rules/__tests__/no-hooks.test.js +90 -0
  35. package/lib/rules/__tests__/no-identical-title.test.js +270 -0
  36. package/lib/rules/__tests__/no-if.test.js +787 -0
  37. package/lib/rules/__tests__/no-interpolation-in-snapshots.test.js +58 -0
  38. package/lib/rules/__tests__/no-jasmine-globals.test.js +206 -0
  39. package/lib/rules/__tests__/no-large-snapshots.test.js +237 -0
  40. package/lib/rules/__tests__/no-mocks-import.test.js +73 -0
  41. package/lib/rules/__tests__/no-restricted-jest-methods.test.js +103 -0
  42. package/lib/rules/__tests__/no-restricted-matchers.test.js +244 -0
  43. package/lib/rules/__tests__/no-standalone-expect.test.js +230 -0
  44. package/lib/rules/__tests__/no-test-prefixes.test.js +206 -0
  45. package/lib/rules/__tests__/no-test-return-statement.test.js +122 -0
  46. package/lib/rules/__tests__/no-untyped-mock-factory.test.js +149 -0
  47. package/lib/rules/__tests__/prefer-called-with.test.js +40 -0
  48. package/lib/rules/__tests__/prefer-comparison-matcher.test.js +200 -0
  49. package/lib/rules/__tests__/prefer-each.test.js +295 -0
  50. package/lib/rules/__tests__/prefer-equality-matcher.test.js +184 -0
  51. package/lib/rules/__tests__/prefer-expect-assertions.test.js +1437 -0
  52. package/lib/rules/__tests__/prefer-expect-resolves.test.js +96 -0
  53. package/lib/rules/__tests__/prefer-hooks-in-order.test.js +678 -0
  54. package/lib/rules/__tests__/prefer-hooks-on-top.test.js +218 -0
  55. package/lib/rules/__tests__/prefer-lowercase-title.test.js +619 -0
  56. package/lib/rules/__tests__/prefer-mock-promise-shorthand.test.js +360 -0
  57. package/lib/rules/__tests__/prefer-snapshot-hint.test.js +784 -0
  58. package/lib/rules/__tests__/prefer-spy-on.test.js +100 -0
  59. package/lib/rules/__tests__/prefer-strict-equal.test.js +46 -0
  60. package/lib/rules/__tests__/prefer-to-be.test.js +438 -0
  61. package/lib/rules/__tests__/prefer-to-contain.test.js +301 -0
  62. package/lib/rules/__tests__/prefer-to-have-length.test.js +99 -0
  63. package/lib/rules/__tests__/prefer-todo.test.js +78 -0
  64. package/lib/rules/__tests__/require-hook.test.js +403 -0
  65. package/lib/rules/__tests__/require-to-throw-message.test.js +108 -0
  66. package/lib/rules/__tests__/require-top-level-describe.test.js +236 -0
  67. package/lib/rules/__tests__/test-utils.js +11 -0
  68. package/lib/rules/__tests__/unbound-method.test.js +518 -0
  69. package/lib/rules/__tests__/valid-describe-callback.test.js +305 -0
  70. package/lib/rules/__tests__/valid-expect-in-promise.test.js +1583 -0
  71. package/lib/rules/__tests__/valid-expect.test.js +894 -0
  72. package/lib/rules/__tests__/valid-title.test.js +1147 -0
  73. package/lib/rules/utils/__tests__/detectJestVersion.test.js +221 -0
  74. package/lib/rules/utils/__tests__/parseJestFnCall.test.js +809 -0
  75. package/lib/rules/utils/accessors.js +4 -0
  76. package/lib/rules/utils/misc.js +36 -20
  77. package/package.json +12 -8
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+
3
+ var _utils = require("@typescript-eslint/utils");
4
+ var _dedent = _interopRequireDefault(require("dedent"));
5
+ var _requireTopLevelDescribe = _interopRequireDefault(require("../require-top-level-describe"));
6
+ var _testUtils = require("./test-utils");
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ const ruleTester = new _utils.TSESLint.RuleTester({
9
+ parser: _testUtils.espreeParser,
10
+ parserOptions: {
11
+ ecmaVersion: 2015
12
+ }
13
+ });
14
+ ruleTester.run('require-top-level-describe', _requireTopLevelDescribe.default, {
15
+ valid: ['it.each()', 'describe("test suite", () => { test("my test") });', 'describe("test suite", () => { it("my test") });', (0, _dedent.default)`
16
+ describe("test suite", () => {
17
+ beforeEach("a", () => {});
18
+ describe("b", () => {});
19
+ test("c", () => {})
20
+ });
21
+ `, 'describe("test suite", () => { beforeAll("my beforeAll") });', 'describe("test suite", () => { afterEach("my afterEach") });', 'describe("test suite", () => { afterAll("my afterAll") });', (0, _dedent.default)`
22
+ describe("test suite", () => {
23
+ it("my test", () => {})
24
+ describe("another test suite", () => {
25
+ });
26
+ test("my other test", () => {})
27
+ });
28
+ `, 'foo()', 'describe.each([1, true])("trues", value => { it("an it", () => expect(value).toBe(true) ); });', (0, _dedent.default)`
29
+ describe('%s', () => {
30
+ it('is fine', () => {
31
+ //
32
+ });
33
+ });
34
+
35
+ describe.each('world')('%s', () => {
36
+ it.each([1, 2, 3])('%n', () => {
37
+ //
38
+ });
39
+ });
40
+ `, (0, _dedent.default)`
41
+ describe.each('hello')('%s', () => {
42
+ it('is fine', () => {
43
+ //
44
+ });
45
+ });
46
+
47
+ describe.each('world')('%s', () => {
48
+ it.each([1, 2, 3])('%n', () => {
49
+ //
50
+ });
51
+ });
52
+ `, {
53
+ code: (0, _dedent.default)`
54
+ import { jest } from '@jest/globals';
55
+
56
+ jest.doMock('my-module');
57
+ `,
58
+ parserOptions: {
59
+ sourceType: 'module'
60
+ }
61
+ }, 'jest.doMock("my-module")'],
62
+ invalid: [{
63
+ code: 'beforeEach("my test", () => {})',
64
+ errors: [{
65
+ messageId: 'unexpectedHook'
66
+ }]
67
+ }, {
68
+ code: (0, _dedent.default)`
69
+ test("my test", () => {})
70
+ describe("test suite", () => {});
71
+ `,
72
+ errors: [{
73
+ messageId: 'unexpectedTestCase'
74
+ }]
75
+ }, {
76
+ code: (0, _dedent.default)`
77
+ test("my test", () => {})
78
+ describe("test suite", () => {
79
+ it("test", () => {})
80
+ });
81
+ `,
82
+ errors: [{
83
+ messageId: 'unexpectedTestCase'
84
+ }]
85
+ }, {
86
+ code: (0, _dedent.default)`
87
+ describe("test suite", () => {});
88
+ afterAll("my test", () => {})
89
+ `,
90
+ errors: [{
91
+ messageId: 'unexpectedHook'
92
+ }]
93
+ }, {
94
+ code: (0, _dedent.default)`
95
+ import { describe, afterAll as onceEverythingIsDone } from '@jest/globals';
96
+
97
+ describe("test suite", () => {});
98
+ onceEverythingIsDone("my test", () => {})
99
+ `,
100
+ parserOptions: {
101
+ sourceType: 'module'
102
+ },
103
+ errors: [{
104
+ messageId: 'unexpectedHook'
105
+ }]
106
+ }, {
107
+ code: "it.skip('test', () => {});",
108
+ errors: [{
109
+ messageId: 'unexpectedTestCase'
110
+ }]
111
+ }, {
112
+ code: "it.each([1, 2, 3])('%n', () => {});",
113
+ errors: [{
114
+ messageId: 'unexpectedTestCase'
115
+ }]
116
+ }, {
117
+ code: "it.skip.each([1, 2, 3])('%n', () => {});",
118
+ errors: [{
119
+ messageId: 'unexpectedTestCase'
120
+ }]
121
+ }, {
122
+ code: "it.skip.each``('%n', () => {});",
123
+ errors: [{
124
+ messageId: 'unexpectedTestCase'
125
+ }]
126
+ }, {
127
+ code: "it.each``('%n', () => {});",
128
+ errors: [{
129
+ messageId: 'unexpectedTestCase'
130
+ }]
131
+ }]
132
+ });
133
+ ruleTester.run('require-top-level-describe (enforce number of describes)', _requireTopLevelDescribe.default, {
134
+ valid: ['describe("test suite", () => { test("my test") });', 'foo()', 'describe.each([1, true])("trues", value => { it("an it", () => expect(value).toBe(true) ); });', (0, _dedent.default)`
135
+ describe('one', () => {});
136
+ describe('two', () => {});
137
+ describe('three', () => {});
138
+ `, {
139
+ code: (0, _dedent.default)`
140
+ describe('one', () => {
141
+ describe('two', () => {});
142
+ describe('three', () => {});
143
+ });
144
+ `,
145
+ options: [{
146
+ maxNumberOfTopLevelDescribes: 1
147
+ }]
148
+ }],
149
+ invalid: [{
150
+ code: (0, _dedent.default)`
151
+ describe('one', () => {});
152
+ describe('two', () => {});
153
+ describe('three', () => {});
154
+ `,
155
+ options: [{
156
+ maxNumberOfTopLevelDescribes: 2
157
+ }],
158
+ errors: [{
159
+ messageId: 'tooManyDescribes',
160
+ line: 3
161
+ }]
162
+ }, {
163
+ code: (0, _dedent.default)`
164
+ describe('one', () => {
165
+ describe('one (nested)', () => {});
166
+ describe('two (nested)', () => {});
167
+ });
168
+ describe('two', () => {
169
+ describe('one (nested)', () => {});
170
+ describe('two (nested)', () => {});
171
+ describe('three (nested)', () => {});
172
+ });
173
+ describe('three', () => {
174
+ describe('one (nested)', () => {});
175
+ describe('two (nested)', () => {});
176
+ describe('three (nested)', () => {});
177
+ });
178
+ `,
179
+ options: [{
180
+ maxNumberOfTopLevelDescribes: 2
181
+ }],
182
+ errors: [{
183
+ messageId: 'tooManyDescribes',
184
+ line: 10
185
+ }]
186
+ }, {
187
+ code: (0, _dedent.default)`
188
+ import {
189
+ describe as describe1,
190
+ describe as describe2,
191
+ describe as describe3,
192
+ } from '@jest/globals';
193
+
194
+ describe1('one', () => {
195
+ describe('one (nested)', () => {});
196
+ describe('two (nested)', () => {});
197
+ });
198
+ describe2('two', () => {
199
+ describe('one (nested)', () => {});
200
+ describe('two (nested)', () => {});
201
+ describe('three (nested)', () => {});
202
+ });
203
+ describe3('three', () => {
204
+ describe('one (nested)', () => {});
205
+ describe('two (nested)', () => {});
206
+ describe('three (nested)', () => {});
207
+ });
208
+ `,
209
+ options: [{
210
+ maxNumberOfTopLevelDescribes: 2
211
+ }],
212
+ parserOptions: {
213
+ sourceType: 'module'
214
+ },
215
+ errors: [{
216
+ messageId: 'tooManyDescribes',
217
+ line: 16
218
+ }]
219
+ }, {
220
+ code: (0, _dedent.default)`
221
+ describe('one', () => {});
222
+ describe('two', () => {});
223
+ describe('three', () => {});
224
+ `,
225
+ options: [{
226
+ maxNumberOfTopLevelDescribes: 1
227
+ }],
228
+ errors: [{
229
+ messageId: 'tooManyDescribes',
230
+ line: 2
231
+ }, {
232
+ messageId: 'tooManyDescribes',
233
+ line: 3
234
+ }]
235
+ }]
236
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.espreeParser = void 0;
7
+ var _module = require("module");
8
+ const _require = (0, _module.createRequire)(__filename);
9
+ const eslintRequire = (0, _module.createRequire)(_require.resolve('eslint'));
10
+ const espreeParser = eslintRequire.resolve('espree');
11
+ exports.espreeParser = espreeParser;