Use `userEvent` asynchronously: ```tsx const user = userEvent.setup(); await user.type(screen.getByLabelText(/email/i), 'test@test.com'); await user.click(screen.getByRole('button', { name: /submit/i })); expect(await screen.findByText(/success/i)).toBeInTheDocument(); ``` Prefer `findByText` for results that appear after submission and avoid `fireEvent` for normal user interactions.
Installs into .claude/skills of the current project.
Are you the author of React Testing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-react-testing-d2605dae)
Use `userEvent` asynchronously:
```tsx
const user = userEvent.setup();
await user.type(screen.getByLabelText(/email/i), 'test@test.com');
await user.click(screen.getByRole('button', { name: /submit/i }));
expect(await screen.findByText(/success/i)).toBeInTheDocument();
```
Prefer `findByText` for results that appear after submission and avoid `fireEvent` for normal user interactions.