Skip to content

Commit c9f2453

Browse files
committed
test(unbound-method): include filename for invalid cases
1 parent 36fb509 commit c9f2453

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

src/rules/__tests__/unbound-method.test.ts

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,22 @@ const ruleTester = new TSESLint.RuleTester({
2020

2121
const fixtureFilename = path.join(rootPath, 'file.ts');
2222

23-
const addFixtureFilename = (
24-
code: TSESLint.ValidTestCase<unknown[]> | string,
25-
): TSESLint.ValidTestCase<unknown[]> => {
26-
const test = typeof code === 'string' ? { code } : code;
27-
28-
return { filename: fixtureFilename, ...test };
23+
const withFixtureFilename = <
24+
T extends Array<
25+
| (TSESLint.ValidTestCase<Options> | string)
26+
| TSESLint.InvalidTestCase<MessageIds, Options>
27+
>,
28+
>(
29+
cases: T,
30+
): T extends Array<TSESLint.InvalidTestCase<MessageIds, Options>>
31+
? Array<TSESLint.InvalidTestCase<MessageIds, Options>>
32+
: Array<TSESLint.ValidTestCase<Options>> => {
33+
// @ts-expect-error this is fine, and will go away later once we upgrade
34+
return cases.map(code => {
35+
const test = typeof code === 'string' ? { code } : code;
36+
37+
return { filename: fixtureFilename, ...test };
38+
});
2939
};
3040

3141
const ConsoleClassAndVariableCode = dedent`
@@ -187,16 +197,18 @@ describe('error handling', () => {
187197
'unbound-method jest edition without type service',
188198
requireRule(true),
189199
{
190-
valid: validTestCases.concat(invalidTestCases.map(({ code }) => code)),
200+
valid: withFixtureFilename(
201+
validTestCases.concat(invalidTestCases.map(({ code }) => code)),
202+
),
191203
invalid: [],
192204
},
193205
);
194206
});
195207
});
196208

197209
ruleTester.run('unbound-method jest edition', requireRule(false), {
198-
valid: validTestCases.map(addFixtureFilename),
199-
invalid: invalidTestCases,
210+
valid: withFixtureFilename(validTestCases),
211+
invalid: withFixtureFilename(invalidTestCases),
200212
});
201213

202214
function addContainsMethodsClass(code: string): string {
@@ -235,7 +247,7 @@ function addContainsMethodsClassInvalid(
235247
}
236248

237249
ruleTester.run('unbound-method', requireRule(false), {
238-
valid: [
250+
valid: withFixtureFilename([
239251
'Promise.resolve().then(console.log);',
240252
"['1', '2', '3'].map(Number.parseInt);",
241253
'[5.2, 7.1, 3.6].map(Math.floor);',
@@ -466,8 +478,8 @@ class OtherClass extends BaseClass {
466478
const oc = new OtherClass();
467479
oc.superLogThis();
468480
`,
469-
].map(addFixtureFilename),
470-
invalid: [
481+
]),
482+
invalid: withFixtureFilename([
471483
{
472484
code: `
473485
class Console {
@@ -827,5 +839,5 @@ const { b, a } = values;
827839
},
828840
],
829841
},
830-
],
842+
]),
831843
});

0 commit comments

Comments
 (0)