Skip to content

Commit 8b67ac1

Browse files
committed
test(no-wait-for-empty-callback): increase rule coverage
1 parent 279b461 commit 8b67ac1

File tree

2 files changed

+66
-5
lines changed

2 files changed

+66
-5
lines changed

lib/detect-testing-library-utils.ts

+14-5
Original file line numberDiff line numberDiff line change
@@ -296,12 +296,21 @@ export function detectTestingLibraryUtils<
296296
* coming from Testing Library will be considered as valid.
297297
*/
298298
const isAsyncUtil: IsAsyncUtilFn = (node, validNames) => {
299-
return isTestingLibraryUtil(node, (identifierNodeName) => {
300-
if (validNames && validNames.length > 0) {
301-
return (validNames as string[]).includes(identifierNodeName);
299+
return isTestingLibraryUtil(
300+
node,
301+
(identifierNodeName, originalNodeName) => {
302+
if (validNames && validNames.length > 0) {
303+
return (
304+
(validNames as string[]).includes(identifierNodeName) ||
305+
(validNames as string[]).includes(originalNodeName)
306+
);
307+
}
308+
return (
309+
ASYNC_UTILS.includes(identifierNodeName) ||
310+
ASYNC_UTILS.includes(originalNodeName)
311+
);
302312
}
303-
return ASYNC_UTILS.includes(identifierNodeName);
304-
});
313+
);
305314
};
306315

307316
/**

tests/lib/rules/no-wait-for-empty-callback.test.ts

+52
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,24 @@ ruleTester.run(RULE_NAME, rule, {
2929
{
3030
code: `wait(() => {})`,
3131
},
32+
{
33+
code: `wait(noop)`,
34+
},
35+
{
36+
settings: { 'testing-library/utils-module': 'test-utils' },
37+
code: `
38+
import { waitFor } from 'somewhere-else'
39+
waitFor(() => {})
40+
`,
41+
},
42+
{
43+
settings: { 'testing-library/utils-module': 'test-utils' },
44+
code: `
45+
import { waitFor as renamedWaitFor } from '@testing-library/react'
46+
import { waitFor } from 'somewhere-else'
47+
waitFor(() => {})
48+
`,
49+
},
3250
],
3351

3452
invalid: [
@@ -45,6 +63,40 @@ ruleTester.run(RULE_NAME, rule, {
4563
},
4664
],
4765
})),
66+
...ALL_WAIT_METHODS.map((m) => ({
67+
settings: { 'testing-library/utils-module': 'test-utils' },
68+
code: `
69+
import { ${m} } from 'test-utils';
70+
${m}(() => {});
71+
`,
72+
errors: [
73+
{
74+
line: 3,
75+
column: 16 + m.length,
76+
messageId: 'noWaitForEmptyCallback',
77+
data: {
78+
methodName: m,
79+
},
80+
},
81+
],
82+
})),
83+
...ALL_WAIT_METHODS.map((m) => ({
84+
settings: { 'testing-library/utils-module': 'test-utils' },
85+
code: `
86+
import { ${m} as renamedAsyncUtil } from 'test-utils';
87+
renamedAsyncUtil(() => {});
88+
`,
89+
errors: [
90+
{
91+
line: 3,
92+
column: 32,
93+
messageId: 'noWaitForEmptyCallback',
94+
data: {
95+
methodName: 'renamedAsyncUtil',
96+
},
97+
},
98+
],
99+
})),
48100
...ALL_WAIT_METHODS.map((m) => ({
49101
code: `${m}((a, b) => {})`,
50102
errors: [

0 commit comments

Comments
 (0)