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 `