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,305 @@
1
+ "use strict";
2
+
3
+ var _utils = require("@typescript-eslint/utils");
4
+ var _dedent = _interopRequireDefault(require("dedent"));
5
+ var _validDescribeCallback = _interopRequireDefault(require("../valid-describe-callback"));
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: 2017
12
+ }
13
+ });
14
+ ruleTester.run('valid-describe-callback', _validDescribeCallback.default, {
15
+ valid: ['describe.each([1, 2, 3])("%s", (a, b) => {});', 'describe("foo", function() {})', 'describe("foo", () => {})', 'describe(`foo`, () => {})', 'xdescribe("foo", () => {})', 'fdescribe("foo", () => {})', 'describe.only("foo", () => {})', 'describe.skip("foo", () => {})', (0, _dedent.default)`
16
+ describe('foo', () => {
17
+ it('bar', () => {
18
+ return Promise.resolve(42).then(value => {
19
+ expect(value).toBe(42)
20
+ })
21
+ })
22
+ })
23
+ `, (0, _dedent.default)`
24
+ describe('foo', () => {
25
+ it('bar', async () => {
26
+ expect(await Promise.resolve(42)).toBe(42)
27
+ })
28
+ })
29
+ `, (0, _dedent.default)`
30
+ if (hasOwnProperty(obj, key)) {
31
+ }
32
+ `, (0, _dedent.default)`
33
+ describe.each\`
34
+ foo | foe
35
+ ${1} | ${2}
36
+ \`('$something', ({ foo, foe }) => {});
37
+ `],
38
+ invalid: [{
39
+ code: 'describe.each()()',
40
+ errors: [{
41
+ messageId: 'nameAndCallback',
42
+ line: 1,
43
+ column: 1
44
+ }]
45
+ }, {
46
+ code: 'describe["each"]()()',
47
+ errors: [{
48
+ messageId: 'nameAndCallback',
49
+ line: 1,
50
+ column: 1
51
+ }]
52
+ }, {
53
+ code: 'describe.each(() => {})()',
54
+ errors: [{
55
+ messageId: 'nameAndCallback',
56
+ line: 1,
57
+ column: 1
58
+ }]
59
+ }, {
60
+ code: 'describe.each(() => {})("foo")',
61
+ errors: [{
62
+ messageId: 'nameAndCallback',
63
+ line: 1,
64
+ column: 25
65
+ }]
66
+ }, {
67
+ code: 'describe.each()(() => {})',
68
+ errors: [{
69
+ messageId: 'nameAndCallback',
70
+ line: 1,
71
+ column: 17
72
+ }]
73
+ }, {
74
+ code: 'describe["each"]()(() => {})',
75
+ errors: [{
76
+ messageId: 'nameAndCallback',
77
+ line: 1,
78
+ column: 20
79
+ }]
80
+ }, {
81
+ code: 'describe.each("foo")(() => {})',
82
+ errors: [{
83
+ messageId: 'nameAndCallback',
84
+ line: 1,
85
+ column: 22
86
+ }]
87
+ }, {
88
+ code: 'describe.only.each("foo")(() => {})',
89
+ errors: [{
90
+ messageId: 'nameAndCallback',
91
+ line: 1,
92
+ column: 27
93
+ }]
94
+ }, {
95
+ code: 'describe(() => {})',
96
+ errors: [{
97
+ messageId: 'nameAndCallback',
98
+ line: 1,
99
+ column: 10
100
+ }]
101
+ }, {
102
+ code: 'describe("foo")',
103
+ errors: [{
104
+ messageId: 'nameAndCallback',
105
+ line: 1,
106
+ column: 10
107
+ }]
108
+ }, {
109
+ code: 'describe("foo", "foo2")',
110
+ errors: [{
111
+ messageId: 'secondArgumentMustBeFunction',
112
+ line: 1,
113
+ column: 10
114
+ }]
115
+ }, {
116
+ code: 'describe()',
117
+ errors: [{
118
+ messageId: 'nameAndCallback',
119
+ line: 1,
120
+ column: 1
121
+ }]
122
+ }, {
123
+ code: 'describe("foo", async () => {})',
124
+ errors: [{
125
+ messageId: 'noAsyncDescribeCallback',
126
+ line: 1,
127
+ column: 17
128
+ }]
129
+ }, {
130
+ code: 'describe("foo", async function () {})',
131
+ errors: [{
132
+ messageId: 'noAsyncDescribeCallback',
133
+ line: 1,
134
+ column: 17
135
+ }]
136
+ }, {
137
+ code: 'xdescribe("foo", async function () {})',
138
+ errors: [{
139
+ messageId: 'noAsyncDescribeCallback',
140
+ line: 1,
141
+ column: 18
142
+ }]
143
+ }, {
144
+ code: 'fdescribe("foo", async function () {})',
145
+ errors: [{
146
+ messageId: 'noAsyncDescribeCallback',
147
+ line: 1,
148
+ column: 18
149
+ }]
150
+ }, {
151
+ code: (0, _dedent.default)`
152
+ import { fdescribe } from '@jest/globals';
153
+
154
+ fdescribe("foo", async function () {})
155
+ `,
156
+ parserOptions: {
157
+ sourceType: 'module'
158
+ },
159
+ errors: [{
160
+ messageId: 'noAsyncDescribeCallback',
161
+ line: 3,
162
+ column: 18
163
+ }]
164
+ }, {
165
+ code: 'describe.only("foo", async function () {})',
166
+ errors: [{
167
+ messageId: 'noAsyncDescribeCallback',
168
+ line: 1,
169
+ column: 22
170
+ }]
171
+ }, {
172
+ code: 'describe.skip("foo", async function () {})',
173
+ errors: [{
174
+ messageId: 'noAsyncDescribeCallback',
175
+ line: 1,
176
+ column: 22
177
+ }]
178
+ }, {
179
+ code: (0, _dedent.default)`
180
+ describe('sample case', () => {
181
+ it('works', () => {
182
+ expect(true).toEqual(true);
183
+ });
184
+ describe('async', async () => {
185
+ await new Promise(setImmediate);
186
+ it('breaks', () => {
187
+ throw new Error('Fail');
188
+ });
189
+ });
190
+ });
191
+ `,
192
+ errors: [{
193
+ messageId: 'noAsyncDescribeCallback',
194
+ line: 5,
195
+ column: 21
196
+ }]
197
+ }, {
198
+ code: (0, _dedent.default)`
199
+ describe('foo', function () {
200
+ return Promise.resolve().then(() => {
201
+ it('breaks', () => {
202
+ throw new Error('Fail')
203
+ })
204
+ })
205
+ })
206
+ `,
207
+ errors: [{
208
+ messageId: 'unexpectedReturnInDescribe',
209
+ line: 2,
210
+ column: 3
211
+ }]
212
+ }, {
213
+ code: (0, _dedent.default)`
214
+ describe('foo', () => {
215
+ return Promise.resolve().then(() => {
216
+ it('breaks', () => {
217
+ throw new Error('Fail')
218
+ })
219
+ })
220
+ describe('nested', () => {
221
+ return Promise.resolve().then(() => {
222
+ it('breaks', () => {
223
+ throw new Error('Fail')
224
+ })
225
+ })
226
+ })
227
+ })
228
+ `,
229
+ errors: [{
230
+ messageId: 'unexpectedReturnInDescribe',
231
+ line: 2,
232
+ column: 3
233
+ }, {
234
+ messageId: 'unexpectedReturnInDescribe',
235
+ line: 8,
236
+ column: 5
237
+ }]
238
+ }, {
239
+ code: (0, _dedent.default)`
240
+ describe('foo', async () => {
241
+ await something()
242
+ it('does something')
243
+ describe('nested', () => {
244
+ return Promise.resolve().then(() => {
245
+ it('breaks', () => {
246
+ throw new Error('Fail')
247
+ })
248
+ })
249
+ })
250
+ })
251
+ `,
252
+ errors: [{
253
+ messageId: 'noAsyncDescribeCallback',
254
+ line: 1,
255
+ column: 17
256
+ }, {
257
+ messageId: 'unexpectedReturnInDescribe',
258
+ line: 5,
259
+ column: 5
260
+ }]
261
+ }, {
262
+ code: (0, _dedent.default)`
263
+ describe('foo', () =>
264
+ test('bar', () => {})
265
+ )
266
+ `,
267
+ errors: [{
268
+ messageId: 'unexpectedReturnInDescribe',
269
+ line: 1,
270
+ column: 17
271
+ }]
272
+ }, {
273
+ code: 'describe("foo", done => {})',
274
+ errors: [{
275
+ messageId: 'unexpectedDescribeArgument',
276
+ line: 1,
277
+ column: 17
278
+ }]
279
+ }, {
280
+ code: 'describe("foo", function (done) {})',
281
+ errors: [{
282
+ messageId: 'unexpectedDescribeArgument',
283
+ line: 1,
284
+ column: 27
285
+ }]
286
+ }, {
287
+ code: 'describe("foo", function (one, two, three) {})',
288
+ errors: [{
289
+ messageId: 'unexpectedDescribeArgument',
290
+ line: 1,
291
+ column: 27
292
+ }]
293
+ }, {
294
+ code: 'describe("foo", async function (done) {})',
295
+ errors: [{
296
+ messageId: 'noAsyncDescribeCallback',
297
+ line: 1,
298
+ column: 17
299
+ }, {
300
+ messageId: 'unexpectedDescribeArgument',
301
+ line: 1,
302
+ column: 33
303
+ }]
304
+ }]
305
+ });