Skip to content

Commit 3908ab8

Browse files
authored
fix(max-expect): reset expect counter when entering and exiting test function calls (#1206)
1 parent 1f0d87f commit 3908ab8

File tree

2 files changed

+69
-3
lines changed

2 files changed

+69
-3
lines changed

src/rules/__tests__/max-expects.test.ts

+64
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,70 @@ ruleTester.run('max-expects', rule, {
120120
expect(true).toBeDefined();
121121
});
122122
`,
123+
dedent`
124+
function myHelper() {
125+
expect(true).toBeDefined();
126+
expect(true).toBeDefined();
127+
expect(true).toBeDefined();
128+
};
129+
130+
test('should pass', () => {
131+
expect(true).toBeDefined();
132+
expect(true).toBeDefined();
133+
expect(true).toBeDefined();
134+
});
135+
`,
136+
dedent`
137+
function myHelper1() {
138+
expect(true).toBeDefined();
139+
expect(true).toBeDefined();
140+
expect(true).toBeDefined();
141+
};
142+
143+
test('should pass', () => {
144+
expect(true).toBeDefined();
145+
expect(true).toBeDefined();
146+
expect(true).toBeDefined();
147+
});
148+
149+
function myHelper2() {
150+
expect(true).toBeDefined();
151+
expect(true).toBeDefined();
152+
expect(true).toBeDefined();
153+
};
154+
`,
155+
dedent`
156+
test('should pass', () => {
157+
expect(true).toBeDefined();
158+
expect(true).toBeDefined();
159+
expect(true).toBeDefined();
160+
});
161+
162+
function myHelper() {
163+
expect(true).toBeDefined();
164+
expect(true).toBeDefined();
165+
expect(true).toBeDefined();
166+
};
167+
`,
168+
dedent`
169+
const myHelper1 = () => {
170+
expect(true).toBeDefined();
171+
expect(true).toBeDefined();
172+
expect(true).toBeDefined();
173+
};
174+
175+
test('should pass', function() {
176+
expect(true).toBeDefined();
177+
expect(true).toBeDefined();
178+
expect(true).toBeDefined();
179+
});
180+
181+
const myHelper2 = function() {
182+
expect(true).toBeDefined();
183+
expect(true).toBeDefined();
184+
expect(true).toBeDefined();
185+
};
186+
`,
123187
{
124188
code: dedent`
125189
test('should pass', () => {

src/rules/max-expects.ts

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default createRule({
3636
create(context, [{ max }]) {
3737
let count = 0;
3838

39-
const onFunctionExpressionEnter = (node: FunctionExpression) => {
39+
const maybeResetCount = (node: FunctionExpression) => {
4040
const isTestFn =
4141
node.parent?.type !== AST_NODE_TYPES.CallExpression ||
4242
isTypeOfJestFnCall(node.parent, context, ['test']);
@@ -47,8 +47,10 @@ export default createRule({
4747
};
4848

4949
return {
50-
FunctionExpression: onFunctionExpressionEnter,
51-
ArrowFunctionExpression: onFunctionExpressionEnter,
50+
FunctionExpression: maybeResetCount,
51+
'FunctionExpression:exit': maybeResetCount,
52+
ArrowFunctionExpression: maybeResetCount,
53+
'ArrowFunctionExpression:exit': maybeResetCount,
5254
CallExpression(node) {
5355
const jestFnCall = parseJestFnCall(node, context);
5456

0 commit comments

Comments
 (0)