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,270 @@
1
+ "use strict";
2
+
3
+ var _utils = require("@typescript-eslint/utils");
4
+ var _dedent = _interopRequireDefault(require("dedent"));
5
+ var _noIdenticalTitle = _interopRequireDefault(require("../no-identical-title"));
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('no-identical-title', _noIdenticalTitle.default, {
15
+ valid: ['it(); it();', 'describe(); describe();', 'describe("foo", () => {}); it("foo", () => {});', (0, _dedent.default)`
16
+ describe("foo", () => {
17
+ it("works", () => {});
18
+ });
19
+ `, (0, _dedent.default)`
20
+ it('one', () => {});
21
+ it('two', () => {});
22
+ `, (0, _dedent.default)`
23
+ describe('foo', () => {});
24
+ describe('foe', () => {});
25
+ `, (0, _dedent.default)`
26
+ it(\`one\`, () => {});
27
+ it(\`two\`, () => {});
28
+ `, (0, _dedent.default)`
29
+ describe(\`foo\`, () => {});
30
+ describe(\`foe\`, () => {});
31
+ `, (0, _dedent.default)`
32
+ describe('foo', () => {
33
+ test('this', () => {});
34
+ test('that', () => {});
35
+ });
36
+ `, (0, _dedent.default)`
37
+ test.concurrent('this', () => {});
38
+ test.concurrent('that', () => {});
39
+ `, (0, _dedent.default)`
40
+ test.concurrent('this', () => {});
41
+ test.only.concurrent('that', () => {});
42
+ `, (0, _dedent.default)`
43
+ test.only.concurrent('this', () => {});
44
+ test.concurrent('that', () => {});
45
+ `, (0, _dedent.default)`
46
+ test.only.concurrent('this', () => {});
47
+ test.only.concurrent('that', () => {});
48
+ `, (0, _dedent.default)`
49
+ test.only('this', () => {});
50
+ test.only('that', () => {});
51
+ `, (0, _dedent.default)`
52
+ describe('foo', () => {
53
+ it('works', () => {});
54
+
55
+ describe('foe', () => {
56
+ it('works', () => {});
57
+ });
58
+ });
59
+ `, (0, _dedent.default)`
60
+ describe('foo', () => {
61
+ describe('foe', () => {
62
+ it('works', () => {});
63
+ });
64
+
65
+ it('works', () => {});
66
+ });
67
+ `, "describe('foo', () => describe('foe', () => {}));", (0, _dedent.default)`
68
+ describe('foo', () => {
69
+ describe('foe', () => {});
70
+ });
71
+
72
+ describe('foe', () => {});
73
+ `, 'test("number" + n, function() {});', 'test("number" + n, function() {}); test("number" + n, function() {});', 'it(`${n}`, function() {});', 'it(`${n}`, function() {}); it(`${n}`, function() {});', (0, _dedent.default)`
74
+ describe('a class named ' + myClass.name, () => {
75
+ describe('#myMethod', () => {});
76
+ });
77
+
78
+ describe('something else', () => {});
79
+ `, (0, _dedent.default)`
80
+ describe('my class', () => {
81
+ describe('#myMethod', () => {});
82
+ describe('a class named ' + myClass.name, () => {});
83
+ });
84
+ `, (0, _dedent.default)`
85
+ describe("foo", () => {
86
+ it(\`ignores $\{someVar} with the same title\`, () => {});
87
+ it(\`ignores $\{someVar} with the same title\`, () => {});
88
+ });
89
+ `.replace(/\\\{/u, '{'), (0, _dedent.default)`
90
+ const test = { content: () => "foo" };
91
+ test.content(\`something that is not from jest\`, () => {});
92
+ test.content(\`something that is not from jest\`, () => {});
93
+ `, (0, _dedent.default)`
94
+ const describe = { content: () => "foo" };
95
+ describe.content(\`something that is not from jest\`, () => {});
96
+ describe.content(\`something that is not from jest\`, () => {});
97
+ `, (0, _dedent.default)`
98
+ describe.each\`
99
+ description
100
+ $\{'b'}
101
+ \`('$description', () => {});
102
+
103
+ describe.each\`
104
+ description
105
+ $\{'a'}
106
+ \`('$description', () => {});
107
+ `, (0, _dedent.default)`
108
+ describe('top level', () => {
109
+ describe.each\`\`('nested each', () => {
110
+ describe.each\`\`('nested nested each', () => {});
111
+ });
112
+
113
+ describe('nested', () => {});
114
+ });
115
+ `, (0, _dedent.default)`
116
+ describe.each\`\`('my title', value => {});
117
+ describe.each\`\`('my title', value => {});
118
+ describe.each([])('my title', value => {});
119
+ describe.each([])('my title', value => {});
120
+ `, (0, _dedent.default)`
121
+ describe.each([])('when the value is %s', value => {});
122
+ describe.each([])('when the value is %s', value => {});
123
+ `],
124
+ invalid: [{
125
+ code: (0, _dedent.default)`
126
+ describe('foo', () => {
127
+ it('works', () => {});
128
+ it('works', () => {});
129
+ });
130
+ `,
131
+ errors: [{
132
+ messageId: 'multipleTestTitle',
133
+ column: 6,
134
+ line: 3
135
+ }]
136
+ }, {
137
+ code: (0, _dedent.default)`
138
+ it('works', () => {});
139
+ it('works', () => {});
140
+ `,
141
+ errors: [{
142
+ messageId: 'multipleTestTitle',
143
+ column: 4,
144
+ line: 2
145
+ }]
146
+ }, {
147
+ code: (0, _dedent.default)`
148
+ test.only('this', () => {});
149
+ test('this', () => {});
150
+ `,
151
+ errors: [{
152
+ messageId: 'multipleTestTitle',
153
+ column: 6,
154
+ line: 2
155
+ }]
156
+ }, {
157
+ code: (0, _dedent.default)`
158
+ xtest('this', () => {});
159
+ test('this', () => {});
160
+ `,
161
+ errors: [{
162
+ messageId: 'multipleTestTitle',
163
+ column: 6,
164
+ line: 2
165
+ }]
166
+ }, {
167
+ code: (0, _dedent.default)`
168
+ test.only('this', () => {});
169
+ test.only('this', () => {});
170
+ `,
171
+ errors: [{
172
+ messageId: 'multipleTestTitle',
173
+ column: 11,
174
+ line: 2
175
+ }]
176
+ }, {
177
+ code: (0, _dedent.default)`
178
+ test.concurrent('this', () => {});
179
+ test.concurrent('this', () => {});
180
+ `,
181
+ errors: [{
182
+ messageId: 'multipleTestTitle',
183
+ column: 17,
184
+ line: 2
185
+ }]
186
+ }, {
187
+ code: (0, _dedent.default)`
188
+ test.only('this', () => {});
189
+ test.concurrent('this', () => {});
190
+ `,
191
+ errors: [{
192
+ messageId: 'multipleTestTitle',
193
+ column: 17,
194
+ line: 2
195
+ }]
196
+ }, {
197
+ code: (0, _dedent.default)`
198
+ describe('foo', () => {});
199
+ describe('foo', () => {});
200
+ `,
201
+ errors: [{
202
+ messageId: 'multipleDescribeTitle',
203
+ column: 10,
204
+ line: 2
205
+ }]
206
+ }, {
207
+ code: (0, _dedent.default)`
208
+ describe('foo', () => {});
209
+ xdescribe('foo', () => {});
210
+ `,
211
+ errors: [{
212
+ messageId: 'multipleDescribeTitle',
213
+ column: 11,
214
+ line: 2
215
+ }]
216
+ }, {
217
+ code: (0, _dedent.default)`
218
+ fdescribe('foo', () => {});
219
+ describe('foo', () => {});
220
+ `,
221
+ errors: [{
222
+ messageId: 'multipleDescribeTitle',
223
+ column: 10,
224
+ line: 2
225
+ }]
226
+ }, {
227
+ code: (0, _dedent.default)`
228
+ describe('foo', () => {
229
+ describe('foe', () => {});
230
+ });
231
+ describe('foo', () => {});
232
+ `,
233
+ errors: [{
234
+ messageId: 'multipleDescribeTitle',
235
+ column: 10,
236
+ line: 4
237
+ }]
238
+ }, {
239
+ code: (0, _dedent.default)`
240
+ describe("foo", () => {
241
+ it(\`catches backticks with the same title\`, () => {});
242
+ it(\`catches backticks with the same title\`, () => {});
243
+ });
244
+ `,
245
+ errors: [{
246
+ messageId: 'multipleTestTitle',
247
+ column: 6,
248
+ line: 3
249
+ }]
250
+ }, {
251
+ code: (0, _dedent.default)`
252
+ context('foo', () => {
253
+ describe('foe', () => {});
254
+ });
255
+ describe('foo', () => {});
256
+ `,
257
+ errors: [{
258
+ messageId: 'multipleDescribeTitle',
259
+ column: 10,
260
+ line: 4
261
+ }],
262
+ settings: {
263
+ jest: {
264
+ globalAliases: {
265
+ describe: ['context']
266
+ }
267
+ }
268
+ }
269
+ }]
270
+ });