Skip to content

Commit ab99a4e

Browse files
committed
fix(prefer-expect-assertions): report expects in loops in functions in tests
1 parent 89145e3 commit ab99a4e

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

src/rules/__tests__/prefer-expect-assertions.test.ts

+21-14
Original file line numberDiff line numberDiff line change
@@ -374,20 +374,6 @@ ruleTester.run('prefer-expect-assertions (loops)', rule, {
374374
`,
375375
options: [{ onlyFunctionsWithExpectInLoop: true }],
376376
},
377-
{
378-
code: dedent`
379-
it('returns numbers that are greater than two', function () {
380-
const expectNumbersToBeGreaterThan = (numbers, value) => {
381-
for (let number of numbers) {
382-
expect(number).toBeGreaterThan(value);
383-
}
384-
};
385-
386-
expectNumbersToBeGreaterThan(getNumbers(), 2);
387-
});
388-
`,
389-
options: [{ onlyFunctionsWithExpectInLoop: true }],
390-
},
391377
{
392378
code: dedent`
393379
it("returns numbers that are greater than five", function () {
@@ -431,6 +417,27 @@ ruleTester.run('prefer-expect-assertions (loops)', rule, {
431417
},
432418
],
433419
},
420+
{
421+
code: dedent`
422+
it('returns numbers that are greater than two', function () {
423+
const expectNumbersToBeGreaterThan = (numbers, value) => {
424+
for (let number of numbers) {
425+
expect(number).toBeGreaterThan(value);
426+
}
427+
};
428+
429+
expectNumbersToBeGreaterThan(getNumbers(), 2);
430+
});
431+
`,
432+
options: [{ onlyFunctionsWithExpectInLoop: true }],
433+
errors: [
434+
{
435+
messageId: 'haveExpectAssertions',
436+
column: 1,
437+
line: 1,
438+
},
439+
],
440+
},
434441
{
435442
code: dedent`
436443
it("only returns numbers that are greater than seven", function () {

src/rules/prefer-expect-assertions.ts

+1-8
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,6 @@ export default createRule<[RuleOptions], MessageIds>({
105105
},
106106
],
107107
create(context, [options]) {
108-
let expressionDepth = 0;
109108
let hasExpectInLoop = false;
110109
let inTestCaseCall = false;
111110
let inForLoop = false;
@@ -133,16 +132,10 @@ export default createRule<[RuleOptions], MessageIds>({
133132
return false;
134133
};
135134

136-
const enterExpression = () => inTestCaseCall && expressionDepth++;
137-
const exitExpression = () => inTestCaseCall && expressionDepth--;
138135
const enterForLoop = () => (inForLoop = true);
139136
const exitForLoop = () => (inForLoop = false);
140137

141138
return {
142-
FunctionExpression: enterExpression,
143-
'FunctionExpression:exit': exitExpression,
144-
ArrowFunctionExpression: enterExpression,
145-
'ArrowFunctionExpression:exit': exitExpression,
146139
ForStatement: enterForLoop,
147140
'ForStatement:exit': exitForLoop,
148141
ForInStatement: enterForLoop,
@@ -156,7 +149,7 @@ export default createRule<[RuleOptions], MessageIds>({
156149
return;
157150
}
158151

159-
if (isExpectCall(node) && expressionDepth === 1 && inForLoop) {
152+
if (isExpectCall(node) && inTestCaseCall && inForLoop) {
160153
hasExpectInLoop = true;
161154
}
162155
},

0 commit comments

Comments
 (0)