Skip to content

Commit 1138003

Browse files
authored
fix: padding-around-expect-groups doesn't detect expectTypeOf as an expect clause (#588)
* fix: support expectTypeOf in padding-around-expect-groups rule * test: add test
1 parent 66fbbce commit 1138003

File tree

3 files changed

+57
-2
lines changed

3 files changed

+57
-2
lines changed

src/rules/padding-around-expect-groups.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@ export const config: Config[] = [
1818
prevStatementType: StatementType.ExpectToken,
1919
nextStatementType: StatementType.ExpectToken,
2020
},
21+
{
22+
paddingType: PaddingType.Always,
23+
prevStatementType: StatementType.Any,
24+
nextStatementType: StatementType.ExpectTypeOfToken,
25+
},
26+
{
27+
paddingType: PaddingType.Always,
28+
prevStatementType: StatementType.ExpectTypeOfToken,
29+
nextStatementType: StatementType.Any,
30+
},
31+
{
32+
paddingType: PaddingType.Any,
33+
prevStatementType: StatementType.ExpectTypeOfToken,
34+
nextStatementType: StatementType.ExpectTypeOfToken,
35+
},
2136
];
2237

2338
export default createPaddingRule(

src/utils/padding.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export const enum StatementType {
1818
BeforeEachToken,
1919
DescribeToken,
2020
ExpectToken,
21+
ExpectTypeOfToken,
2122
FdescribeToken,
2223
FitToken,
2324
ItToken,
@@ -175,6 +176,7 @@ const statementTesters: { [T in StatementType]: StatementTester } = {
175176
[StatementType.BeforeEachToken]: createTokenTester('beforeEach'),
176177
[StatementType.DescribeToken]: createTokenTester('describe'),
177178
[StatementType.ExpectToken]: createTokenTester('expect'),
179+
[StatementType.ExpectTypeOfToken]: createTokenTester('expectTypeOf'),
178180
[StatementType.FdescribeToken]: createTokenTester('fdescribe'),
179181
[StatementType.FitToken]: createTokenTester('fit'),
180182
[StatementType.ItToken]: createTokenTester('it'),

tests/padding-around-expect-groups.test.ts

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

2-
import type { TSESLint } from '@typescript-eslint/utils';
32
import rule, { RULE_NAME } from '../src/rules/padding-around-expect-groups';
43
import { ruleTester } from './ruleTester';
4+
import { InvalidTestCase } from "@typescript-eslint/rule-tester"
55

66
const testCase = {
77
code: `
@@ -61,6 +61,16 @@ test('awaited expect', async () => {
6161
await somethingElseAsync();
6262
await expect(hasAPromise()).resolves.toEqual('foo');
6363
});
64+
65+
test('expectTypeOf test', () => {
66+
const hoge = 123;
67+
expectTypeOf(hoge).toBeNumber();
68+
expectTypeOf(hoge).toBeNumber();
69+
const foo = "abc";
70+
// Comment
71+
expectTypeOf(foo).toBeString();
72+
expectTypeOf(foo).toBeString();
73+
});
6474
`,
6575
output: `
6676
foo();
@@ -129,6 +139,19 @@ test('awaited expect', async () => {
129139
130140
await expect(hasAPromise()).resolves.toEqual('foo');
131141
});
142+
143+
test('expectTypeOf test', () => {
144+
const hoge = 123;
145+
146+
expectTypeOf(hoge).toBeNumber();
147+
expectTypeOf(hoge).toBeNumber();
148+
149+
const foo = "abc";
150+
151+
// Comment
152+
expectTypeOf(foo).toBeString();
153+
expectTypeOf(foo).toBeString();
154+
});
132155
`,
133156
errors: [
134157
{
@@ -181,8 +204,23 @@ test('awaited expect', async () => {
181204
line: 56,
182205
column: 3,
183206
},
207+
{
208+
messageId: 'missingPadding',
209+
line: 61,
210+
column: 3,
211+
},
212+
{
213+
messageId: 'missingPadding',
214+
line: 63,
215+
column: 3,
216+
},
217+
{
218+
messageId: 'missingPadding',
219+
line: 65,
220+
column: 3,
221+
},
184222
],
185-
} satisfies TSESLint.InvalidTestCase<'missingPadding', never>;
223+
} satisfies InvalidTestCase<'missingPadding', never>;
186224

187225
ruleTester.run(RULE_NAME, rule, {
188226
valid: [testCase.output],

0 commit comments

Comments
 (0)