# user-event

Fire events the same way the user does

[**Read The Docs**](https://testing-library.com/docs/ecosystem-user-event) | [Edit the docs](https://github.com/testing-library/testing-library-docs)
--- [![Build Status][build-badge]][build] [![Code Coverage][coverage-badge]][coverage] [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] [![All Contributors][all-contributors-badge]](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Discord][discord-badge]][discord] [![Watch on GitHub][github-watch-badge]][github-watch] [![Star on GitHub][github-star-badge]][github-star] [![Tweet][twitter-badge]][twitter] ## Table of Contents - [The problem](#the-problem) - [The solution](#the-solution) - [Installation](#installation) - [Docs](#docs) - [Known limitations](#known-limitations) - [Issues](#issues) - [🐛 Bugs](#-bugs) - [💡 Feature Requests](#-feature-requests) - [❓ Questions](#-questions) - [Contributors](#contributors) - [LICENSE](#license) ## The problem From [testing-library/dom-testing-library#107](https://github.com/testing-library/dom-testing-library/issues/107): > [...] it is becoming apparent the need to express user actions on a web page > using a higher-level abstraction than [`fireEvent`][fire-event] ## 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.][guiding-principle] ## Installation With NPM: ```sh npm install --save-dev @testing-library/user-event @testing-library/dom ``` With Yarn: ```sh yarn add --dev @testing-library/user-event @testing-library/dom ``` ## Docs [**Read The Docs**](https://testing-library.com/docs/ecosystem-user-event) | [Edit the docs](https://github.com/testing-library/testing-library-docs) ## Known limitations - No `` support. [#423](https://github.com/testing-library/user-event/issues/423#issuecomment-669368863) ## Issues Looking to contribute? Look for the [Good First Issue][good-first-issue] label. ### 🐛 Bugs Please file an issue for bugs, missing documentation, or unexpected behavior. [**See Bugs**][bugs] ### 💡 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. [**See Feature Requests**][requests] ### ❓ Questions For questions related to using the library, please visit a support community instead of filing an issue on GitHub. - [Discord][discord] - [Stack Overflow][stackoverflow] ## Contributors Thanks goes to these people ([emoji key][emojis]):

Giorgio Polvara 🐛 💻 📖 🤔 🚇 👀 ⚠️ | Weyert de Boer 💻 ⚠️ | Tim Whitbeck 🐛 💻 | Michaël De Boey 📖 | Michael Lasky 💻 📖 🤔 | Ahmad Esmaeilzadeh 📖 | Caleb Eby 💻 🐛 👀
Adrià Fontcuberta 🐛 ⚠️ 💻 | Sky Wickenden 🐛 💻 | Bodnar Bogdan 🐛 💻 | Zach Perrault 📖 | Ryan Stelly 📖 | Ben Monro 💻 | Christopher Martin 💻
Yuancheng Wu 👀 | MJ 📖 | Jeff McRiffey 💻 ⚠️ | Jaga Santagostino 💻 ⚠️ | jordyvandomselaar 💻 ⚠️ | Ilya Lyamkin 💻 ⚠️ | Kenneth Luján Rosas 💻 ⚠️
Joe Morgan 💻 | David Hirtle 💻 | whiteUnicorn 💻 | Matej Šnuderl 👀 | Rodrigo Pombo 💻 | Jake Verbaten 💻 | Spencer Miskoviak 📖
Vadim Shvetsov 🤔 💻 ⚠️ | Greg Shtilman 💻 ⚠️ 🐛 | Ricardo Busquet 🐛 💻 ⚠️ | Doug Bacelar 💻 ⚠️ | Kayleigh Ridd 🐛 💻 ⚠️ | Malcolm Kee 💻 📖 ⚠️ | kelvinlzhang 🐛
Krzysztof 🐛 | Pontus Lundin 💻 ⚠️ | Aleks Hudochenkov 🐛 | Vijay Kumar Otti 🐛 | Tom Picton 🐛 💻 ⚠️ | Hung Viet Nguyen 🐛 | Nick McCurdy 📆 💬 💻 ⚠️ 📖
Tim Deschryver ⚠️ | Ben Dyer 💻 ⚠️ | Dan Kirkham 💻 | Johannesklint 📖 | Juan Carlos Medina 💻 ⚠️ | Dade Cook 💻 ⚠️ | Leandro Lourenci 💻 ⚠️
Marco Moretti 💻 ⚠️ | ybentz 💻 ⚠️ | Nasdan 🐛 | Javier Martínez 📖 | Jörg Bayreuther 💻 ⚠️ 📖 | Lucas Bernalte 📖 | Maxwell Newlands 💻 ⚠️
ph-fritsche 💻 ⚠️ | Rey Wright 🐛 💻 | Niklas Mischkulnig 💻 ⚠️ | Pascal Duez 💻 | Malachi Willey 💻 ⚠️ | Clark Winters 📖 | lazytype 💻 ⚠️
Luís Takahashi 💻 ⚠️ | Jesu Castillo 💻 ⚠️ | Sarah Dayan 📖 | Mirone 🐛 | Amanda Pouget 📖 | Sonic12040 💻 ⚠️ 📖 | Gonzalo D'Elia 💻 ⚠️ 📖
Vasilii Kovalev 💻 📖 | Dale Seo 📖 | Alex Boyce 💻 | Ben Styles 💻 ⚠️ | Laura Beatris 💻 ⚠️ | Boris Serdiuk 🐛 | bozdoz 📖 🐛 ⚠️
Jan Kattelans 💻 | schoeneu 🐛 | Martin Kapal 🐛 | Stavros 🐛 | geoffroymounier 🐛 | Fergus McDonald 💻 | Robin Ambachtsheer 🐛
Mohit 🐛 💻 ⚠️ | Daniel Contreras 🐛 | Eugene Ghanizadeh 💻 | Victor Repkow 💻 | Jonathan Felchlin 💻 | sydneyjodon-wk 🐛 💻 | Charles Magic Woo 🐛
mkurcius 💻 | Tim Fischbach 🐛 | Brian Donovan 💻 | Eric Wang 💻 | Jesper Orb 💻 | Johannes Fischer 💻 | Andrew D. 💻

This project follows the [all-contributors][all-contributors] specification. Contributions of any kind welcome! ## LICENSE [MIT](LICENSE) [npm]: https://www.npmjs.com [node]: https://nodejs.org [build-badge]: https://img.shields.io/github/workflow/status/testing-library/user-event/validate/main?logo=github&style=flat-square [build]: https://github.com/testing-library/user-event/actions?query=workflow%3Avalidate [coverage-badge]: https://img.shields.io/codecov/c/github/testing-library/user-event.svg?style=flat-square [coverage]: https://codecov.io/github/testing-library/user-event [version-badge]: https://img.shields.io/npm/v/@testing-library/user-event.svg?style=flat-square [package]: https://www.npmjs.com/package/@testing-library/user-event [downloads-badge]: https://img.shields.io/npm/dm/@testing-library/user-event.svg?style=flat-square [npmtrends]: http://www.npmtrends.com/@testing-library/user-event [license-badge]: https://img.shields.io/npm/l/@testing-library/user-event.svg?style=flat-square [license]: https://github.com/testing-library/user-event/blob/main/LICENSE [prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square [prs]: http://makeapullrequest.com [coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square [coc]: https://github.com/testing-library/user-event/blob/main/other/CODE_OF_CONDUCT.md [github-watch-badge]: https://img.shields.io/github/watchers/testing-library/user-event.svg?style=social [github-watch]: https://github.com/testing-library/user-event/watchers [github-star-badge]: https://img.shields.io/github/stars/testing-library/user-event.svg?style=social [github-star]: https://github.com/testing-library/user-event/stargazers [twitter]: https://twitter.com/intent/tweet?text=Check%20out%20user-event%20by%20%40@TestingLib%20https%3A%2F%2Fgithub.com%2Ftesting-library%2Fuser-event%20%F0%9F%91%8D [twitter-badge]: https://img.shields.io/twitter/url/https/github.com/testing-library/user-event.svg?style=social [emojis]: https://github.com/all-contributors/all-contributors#emoji-key [all-contributors]: https://github.com/all-contributors/all-contributors [all-contributors-badge]: https://img.shields.io/github/all-contributors/testing-library/user-event?color=orange&style=flat-square [guiding-principle]: https://twitter.com/kentcdodds/status/977018512689455106 [bugs]: https://github.com/testing-library/user-event/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Acreated-desc+label%3Abug [requests]: https://github.com/testing-library/user-event/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement [good-first-issue]: https://github.com/testing-library/user-event/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3Aenhancement+label%3A%22good+first+issue%22 [fire-event]: https://testing-library.com/docs/dom-testing-library/api-events#fireevent [discord-badge]: https://img.shields.io/discord/723559267868737556.svg?color=7389D8&labelColor=6A7EC2&logo=discord&logoColor=ffffff&style=flat-square [discord]: https://discord.gg/testing-library [stackoverflow]: https://stackoverflow.com/questions/tagged/user-event