> Considering this for new tests? If your tests can run in a real browser, prefer that over simulating events in jsdom.
- Vitest Browser Mode includes a
userEventfromvitest/browserthat mirrors this API but drives a real browser (recommended over this package in browser mode).- Playwright has first-class locator actions (
click(),fill(),press(), etc.) with auto-waiting - usually the better choice for E2E and Playwright component tests.This package is still reasonable for jsdom/happy-dom Testing Library tests. Details and recommendations: #1319.
The problem
From testing-library/dom-testing-library#107:
[...] it is becoming apparent the need to express user actions on a web page using a higher-level abstraction than
fireEvent
The solution
user-event tries to simulate the real events that would happen in the browser
as the user interacts with it. For example userEvent.click(checkbox) would
change the state of the checkbox.
The more your tests resemble the way your software is used, the more confidence they can give you.
Issues
Looking to contribute? Look for the Good First Issue label.
Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding a . This helps maintainers prioritize what to work on.
Questions
For questions related to using the library, please visit a support community instead of filing an issue on GitHub.
Contributors
We most sincerely thank the people who make this project possible. Contributions of any kind are welcome!