Skip to content

Commit 677be45

Browse files
authored
fix(require-top-level-describe): handle describe.each properly (#745)
1 parent 3d847b2 commit 677be45

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

src/rules/__tests__/require-top-level-describe.test.ts

+33-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ ruleTester.run('require-top-level-describe', rule, {
1616
'describe("test suite", () => { it("my test") });',
1717
dedent`
1818
describe("test suite", () => {
19-
beforeEach("a", () => {});
20-
describe("b", () => {});
19+
beforeEach("a", () => {});
20+
describe("b", () => {});
2121
test("c", () => {})
2222
});
2323
`,
@@ -33,6 +33,33 @@ ruleTester.run('require-top-level-describe', rule, {
3333
});
3434
`,
3535
'foo()',
36+
'describe.each([1, true])("trues", value => { it("an it", () => expect(value).toBe(true) ); });',
37+
dedent`
38+
describe('%s', () => {
39+
it('is fine', () => {
40+
//
41+
});
42+
});
43+
44+
describe.each('world')('%s', () => {
45+
it.each([1, 2, 3])('%n', () => {
46+
//
47+
});
48+
});
49+
`,
50+
dedent`
51+
describe.each('hello')('%s', () => {
52+
it('is fine', () => {
53+
//
54+
});
55+
});
56+
57+
describe.each('world')('%s', () => {
58+
it.each([1, 2, 3])('%n', () => {
59+
//
60+
});
61+
});
62+
`,
3663
],
3764
invalid: [
3865
{
@@ -62,5 +89,9 @@ ruleTester.run('require-top-level-describe', rule, {
6289
`,
6390
errors: [{ messageId: 'unexpectedHook' }],
6491
},
92+
{
93+
code: "it.each([1, 2, 3])('%n', () => {});",
94+
errors: [{ messageId: 'unexpectedTestCase' }],
95+
},
6596
],
6697
});

src/rules/require-top-level-describe.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { TSESTree } from '@typescript-eslint/experimental-utils';
2-
import { createRule, isDescribe, isHook, isTestCase } from './utils';
2+
import {
3+
createRule,
4+
isDescribe,
5+
isDescribeEach,
6+
isHook,
7+
isTestCase,
8+
} from './utils';
39

410
export default createRule({
511
name: __filename,
@@ -44,7 +50,7 @@ export default createRule({
4450
}
4551
},
4652
'CallExpression:exit'(node: TSESTree.CallExpression) {
47-
if (isDescribe(node)) {
53+
if (isDescribe(node) && !isDescribeEach(node)) {
4854
numberOfDescribeBlocks--;
4955
}
5056
},

0 commit comments

Comments
 (0)