eslint-plugin-jest 27.2.0 → 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 (79) 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-if.md +1 -1
  5. package/docs/rules/no-large-snapshots.md +4 -0
  6. package/docs/rules/require-hook.md +2 -6
  7. package/docs/rules/valid-expect.md +2 -2
  8. package/lib/index.js +5 -12
  9. package/lib/processors/__tests__/snapshot-processor.test.js +36 -0
  10. package/lib/rules/__tests__/consistent-test-it.test.js +921 -0
  11. package/lib/rules/__tests__/expect-expect.test.js +347 -0
  12. package/lib/rules/__tests__/fixtures/class.ts +13 -0
  13. package/lib/rules/__tests__/fixtures/file.ts +0 -0
  14. package/lib/rules/__tests__/fixtures/foo.ts +1 -0
  15. package/lib/rules/__tests__/fixtures/indent/indent-invalid-fixture-1.js +530 -0
  16. package/lib/rules/__tests__/fixtures/indent/indent-valid-fixture-1.js +530 -0
  17. package/lib/rules/__tests__/fixtures/react.tsx +0 -0
  18. package/lib/rules/__tests__/fixtures/tsconfig-withmeta.json +6 -0
  19. package/lib/rules/__tests__/fixtures/tsconfig.json +16 -0
  20. package/lib/rules/__tests__/fixtures/unstrict/file.ts +0 -0
  21. package/lib/rules/__tests__/fixtures/unstrict/react.tsx +0 -0
  22. package/lib/rules/__tests__/fixtures/unstrict/tsconfig.json +15 -0
  23. package/lib/rules/__tests__/max-expects.test.js +330 -0
  24. package/lib/rules/__tests__/max-nested-describe.test.js +247 -0
  25. package/lib/rules/__tests__/no-alias-methods.test.js +190 -0
  26. package/lib/rules/__tests__/no-commented-out-tests.test.js +213 -0
  27. package/lib/rules/__tests__/no-conditional-expect.test.js +696 -0
  28. package/lib/rules/__tests__/no-conditional-in-test.test.js +777 -0
  29. package/lib/rules/__tests__/no-deprecated-functions.test.js +119 -0
  30. package/lib/rules/__tests__/no-disabled-tests.test.js +241 -0
  31. package/lib/rules/__tests__/no-done-callback.test.js +424 -0
  32. package/lib/rules/__tests__/no-duplicate-hooks.test.js +469 -0
  33. package/lib/rules/__tests__/no-export.test.js +107 -0
  34. package/lib/rules/__tests__/no-focused-tests.test.js +373 -0
  35. package/lib/rules/__tests__/no-hooks.test.js +90 -0
  36. package/lib/rules/__tests__/no-identical-title.test.js +270 -0
  37. package/lib/rules/__tests__/no-if.test.js +787 -0
  38. package/lib/rules/__tests__/no-interpolation-in-snapshots.test.js +58 -0
  39. package/lib/rules/__tests__/no-jasmine-globals.test.js +206 -0
  40. package/lib/rules/__tests__/no-large-snapshots.test.js +237 -0
  41. package/lib/rules/__tests__/no-mocks-import.test.js +73 -0
  42. package/lib/rules/__tests__/no-restricted-jest-methods.test.js +103 -0
  43. package/lib/rules/__tests__/no-restricted-matchers.test.js +244 -0
  44. package/lib/rules/__tests__/no-standalone-expect.test.js +230 -0
  45. package/lib/rules/__tests__/no-test-prefixes.test.js +206 -0
  46. package/lib/rules/__tests__/no-test-return-statement.test.js +122 -0
  47. package/lib/rules/__tests__/no-untyped-mock-factory.test.js +149 -0
  48. package/lib/rules/__tests__/prefer-called-with.test.js +40 -0
  49. package/lib/rules/__tests__/prefer-comparison-matcher.test.js +200 -0
  50. package/lib/rules/__tests__/prefer-each.test.js +295 -0
  51. package/lib/rules/__tests__/prefer-equality-matcher.test.js +184 -0
  52. package/lib/rules/__tests__/prefer-expect-assertions.test.js +1437 -0
  53. package/lib/rules/__tests__/prefer-expect-resolves.test.js +96 -0
  54. package/lib/rules/__tests__/prefer-hooks-in-order.test.js +678 -0
  55. package/lib/rules/__tests__/prefer-hooks-on-top.test.js +218 -0
  56. package/lib/rules/__tests__/prefer-lowercase-title.test.js +619 -0
  57. package/lib/rules/__tests__/prefer-mock-promise-shorthand.test.js +360 -0
  58. package/lib/rules/__tests__/prefer-snapshot-hint.test.js +784 -0
  59. package/lib/rules/__tests__/prefer-spy-on.test.js +100 -0
  60. package/lib/rules/__tests__/prefer-strict-equal.test.js +46 -0
  61. package/lib/rules/__tests__/prefer-to-be.test.js +438 -0
  62. package/lib/rules/__tests__/prefer-to-contain.test.js +301 -0
  63. package/lib/rules/__tests__/prefer-to-have-length.test.js +99 -0
  64. package/lib/rules/__tests__/prefer-todo.test.js +78 -0
  65. package/lib/rules/__tests__/require-hook.test.js +403 -0
  66. package/lib/rules/__tests__/require-to-throw-message.test.js +108 -0
  67. package/lib/rules/__tests__/require-top-level-describe.test.js +236 -0
  68. package/lib/rules/__tests__/test-utils.js +11 -0
  69. package/lib/rules/__tests__/unbound-method.test.js +518 -0
  70. package/lib/rules/__tests__/valid-describe-callback.test.js +305 -0
  71. package/lib/rules/__tests__/valid-expect-in-promise.test.js +1583 -0
  72. package/lib/rules/__tests__/valid-expect.test.js +894 -0
  73. package/lib/rules/__tests__/valid-title.test.js +1147 -0
  74. package/lib/rules/utils/__tests__/detectJestVersion.test.js +221 -0
  75. package/lib/rules/utils/__tests__/parseJestFnCall.test.js +809 -0
  76. package/lib/rules/utils/accessors.js +4 -0
  77. package/lib/rules/utils/misc.js +36 -20
  78. package/lib/rules/valid-expect-in-promise.js +3 -3
  79. package/package.json +13 -9
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+
3
+ var _utils = require("@typescript-eslint/utils");
4
+ var _dedent = _interopRequireDefault(require("dedent"));
5
+ var _preferHooksOnTop = _interopRequireDefault(require("../prefer-hooks-on-top"));
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('basic describe block', _preferHooksOnTop.default, {
15
+ valid: [(0, _dedent.default)`
16
+ describe('foo', () => {
17
+ beforeEach(() => {});
18
+ someSetupFn();
19
+ afterEach(() => {});
20
+
21
+ test('bar', () => {
22
+ someFn();
23
+ });
24
+ });
25
+ `, (0, _dedent.default)`
26
+ describe('foo', () => {
27
+ someSetupFn();
28
+ beforeEach(() => {});
29
+ afterEach(() => {});
30
+
31
+ test('bar', () => {
32
+ someFn();
33
+ });
34
+ });
35
+ `],
36
+ invalid: [{
37
+ code: (0, _dedent.default)`
38
+ describe('foo', () => {
39
+ beforeEach(() => {});
40
+ test('bar', () => {
41
+ someFn();
42
+ });
43
+
44
+ beforeAll(() => {});
45
+ test('bar', () => {
46
+ someFn();
47
+ });
48
+ });
49
+ `,
50
+ errors: [{
51
+ messageId: 'noHookOnTop',
52
+ column: 3,
53
+ line: 7
54
+ }]
55
+ }, {
56
+ code: (0, _dedent.default)`
57
+ describe('foo', () => {
58
+ beforeEach(() => {});
59
+ test.each\`\`('bar', () => {
60
+ someFn();
61
+ });
62
+
63
+ beforeAll(() => {});
64
+ test.only('bar', () => {
65
+ someFn();
66
+ });
67
+ });
68
+ `,
69
+ errors: [{
70
+ messageId: 'noHookOnTop',
71
+ column: 3,
72
+ line: 7
73
+ }]
74
+ }, {
75
+ code: (0, _dedent.default)`
76
+ describe('foo', () => {
77
+ beforeEach(() => {});
78
+ test.only.each\`\`('bar', () => {
79
+ someFn();
80
+ });
81
+
82
+ beforeAll(() => {});
83
+ test.only('bar', () => {
84
+ someFn();
85
+ });
86
+ });
87
+ `,
88
+ errors: [{
89
+ messageId: 'noHookOnTop',
90
+ column: 3,
91
+ line: 7
92
+ }]
93
+ }]
94
+ });
95
+ ruleTester.run('multiple describe blocks', _preferHooksOnTop.default, {
96
+ valid: [(0, _dedent.default)`
97
+ describe.skip('foo', () => {
98
+ beforeEach(() => {});
99
+ beforeAll(() => {});
100
+
101
+ test('bar', () => {
102
+ someFn();
103
+ });
104
+ });
105
+
106
+ describe('foo', () => {
107
+ beforeEach(() => {});
108
+
109
+ test('bar', () => {
110
+ someFn();
111
+ });
112
+ });
113
+ `],
114
+ invalid: [{
115
+ code: (0, _dedent.default)`
116
+ describe.skip('foo', () => {
117
+ beforeEach(() => {});
118
+ test('bar', () => {
119
+ someFn();
120
+ });
121
+
122
+ beforeAll(() => {});
123
+ test('bar', () => {
124
+ someFn();
125
+ });
126
+ });
127
+ describe('foo', () => {
128
+ beforeEach(() => {});
129
+ beforeEach(() => {});
130
+ beforeAll(() => {});
131
+
132
+ test('bar', () => {
133
+ someFn();
134
+ });
135
+ });
136
+
137
+ describe('foo', () => {
138
+ test('bar', () => {
139
+ someFn();
140
+ });
141
+
142
+ beforeEach(() => {});
143
+ beforeEach(() => {});
144
+ beforeAll(() => {});
145
+ });
146
+ `,
147
+ errors: [{
148
+ messageId: 'noHookOnTop',
149
+ column: 3,
150
+ line: 7
151
+ }, {
152
+ messageId: 'noHookOnTop',
153
+ column: 3,
154
+ line: 27
155
+ }, {
156
+ messageId: 'noHookOnTop',
157
+ column: 3,
158
+ line: 28
159
+ }, {
160
+ messageId: 'noHookOnTop',
161
+ column: 3,
162
+ line: 29
163
+ }]
164
+ }]
165
+ });
166
+ ruleTester.run('nested describe blocks', _preferHooksOnTop.default, {
167
+ valid: [(0, _dedent.default)`
168
+ describe('foo', () => {
169
+ beforeEach(() => {});
170
+ test('bar', () => {
171
+ someFn();
172
+ });
173
+
174
+ describe('inner_foo', () => {
175
+ beforeEach(() => {});
176
+ test('inner bar', () => {
177
+ someFn();
178
+ });
179
+ });
180
+ });
181
+ `],
182
+ invalid: [{
183
+ code: (0, _dedent.default)`
184
+ describe('foo', () => {
185
+ beforeAll(() => {});
186
+ test('bar', () => {
187
+ someFn();
188
+ });
189
+
190
+ describe('inner_foo', () => {
191
+ beforeEach(() => {});
192
+ test('inner bar', () => {
193
+ someFn();
194
+ });
195
+
196
+ test('inner bar', () => {
197
+ someFn();
198
+ });
199
+
200
+ beforeAll(() => {});
201
+ afterAll(() => {});
202
+ test('inner bar', () => {
203
+ someFn();
204
+ });
205
+ });
206
+ });
207
+ `,
208
+ errors: [{
209
+ messageId: 'noHookOnTop',
210
+ column: 5,
211
+ line: 17
212
+ }, {
213
+ messageId: 'noHookOnTop',
214
+ column: 5,
215
+ line: 18
216
+ }]
217
+ }]
218
+ });