Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions lib/node-utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,10 @@ export function getPropertyIdentifierNode(
return getPropertyIdentifierNode(node.expression);
}

if (ASTUtils.isAwaitExpression(node)) {
return getPropertyIdentifierNode(node.argument);
}

return null;
}

Expand Down
24 changes: 24 additions & 0 deletions tests/lib/rules/no-wait-for-side-effects.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,16 @@ ruleTester.run(RULE_NAME, rule, {
// Side effects are allowed inside .then()
userEvent.click(button);
})
`,
},
{
code: `
import { waitFor } from '${testingFramework}';
import { notUserEvent } from 'somewhere-else';

waitFor(() => {
await notUserEvent.click(button)
})
`,
},
]),
Expand Down Expand Up @@ -797,5 +807,19 @@ ruleTester.run(RULE_NAME, rule, {
],
} as const,
]),

...SUPPORTED_TESTING_FRAMEWORKS.flatMap((testingFramework) => [
{
code: `
import { waitFor } from '${testingFramework}';
import userEvent from '@testing-library/user-event'

await waitFor(() => {
await userEvent.click(button);
})
`,
errors: [{ line: 6, column: 11, messageId: 'noSideEffectsWaitFor' }],
},
]),
],
});