NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #824 most downloaded on npm
Simple and complete DOM testing utilities that encourage good testing practices.
Last release 20 days ago
13 Sep 2026
Ships unpredictably
gaps range from 8 days to 1.1 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
230 releases · first in 2019
Add filterNode option to prettyDOM
Remove deprecated waitForElement
One column per quarter.
# 8.0.0-alpha.3 (2021-06-08) ### Bug Fixes * types: remove wait types
# 8.0.0-alpha.2 (2021-06-03) ### Bug Fixes * Consider labelable
Remove deprecated waitFormDOMChange
waitFormDOMChangetimeout in waitFor(callback, { interval, timeout } ) now uses the same clock as interval. Previously timeout was always using the real clock while interval was using the global clock which could've been mocked out. For the old behavior I'd recommend waitFor(callback, { interval, timeout: Number.PositiveInfinity }) and rely on your test runner to timeout considering real timers.## 7.31.2 (2021-06-03) ### Bug Fixes * Consider labelable
## 7.31.1 (2021-06-03) ### Bug Fixes * Bump dom-accessibility-api
## 7.31.1-alpha.1 (2021-06-01) ### Bug Fixes * Bump dom-accessibility-api
Add extra error messages when screen was passed instead of a DOM element
Guard against jest.useRealTimers not existing
types: missing ignore parameter for SelectorMatcherOptions
types: exclude tsconfig from types folder in publish flow
timers: safe check for setImmediate and clearImmediate
Improve error message when passing an Array while a single Element is expected
Don't assume mocked timers imply jest fake timers
remove side-effect from runWithRealTimers
Pass container from findBy through to waitFor
prevent crashing on elements without parentElement
add normalizer for matching aria-label
## 7.29.1 (2021-01-04) ### Bug Fixes * add number support for matches
migrate some files to typescript
suggestions: don't suggest byLabelText when using byLabelText
warn when the test environment fake timers change unexpectedly (#832) (e3fc7f3), closes #830
suggestions: only warn about inaccessible elements when actually showing the suggestion
allow TextMatch to be any non-nullable type
use node property instead of selector for type=text input
## 7.26.6 (2020-11-10) ### Bug Fixes * export pretty format
null labels on hidden inputs (#804) (6ef63b7), closes /github.com/testing-library/dom-testing-library/blob/62f4e5e09a4b81ef66679560b540523edccdef98/sr
Disconnect MutationObserver synchronously in wait-for
## 7.26.3 (2020-10-20) ### Bug Fixes * Use import instead of require
types: make third and fourth params optional for findAllBy and findBy built queries
## 7.26.1 (2020-10-19) ### Bug Fixes * getByLabelText for output
# 7.26.0 (2020-10-13) ### Features * add logPlaygroundUrl in screen
waitFor: allow returning a promise
## 7.24.5 (2020-10-06) ### Bug Fixes * element error delegation
## 7.24.4 (2020-10-05) ### Bug Fixes * createEvent type
Mark deprecated methods as [@deprecated]
events: got-/lostpointercapture bubble
fix typo in config type properties
debug: show line and codeframe when using debug (#733) (dfb4aa1), closes #440
ByRole: Add 'level' option for *ByRole('heading')
getByTitle returning element matching textContent instead of title (#753) (388db21), closes #741
suggest hidden:true with getByRole if element is inaccessible
## 7.22.4 (2020-08-22) ### Bug Fixes * bump pretty-format
## 7.22.3 (2020-08-20) ### Bug Fixes * update dom-accessibility-api
fireEvent: copy non-enumerable data transfer props (#734) (b1659cf), closes #727
Ignore pseudo elements for accessible name by default
role: support {pressed: true} for buttons (#729) (372ac60), closes #692
ByLabelText: support IE and other legacy browsers (#726) (f83f8e9), closes #723
TS: add missing config fields to type
add explicit error message for null or undefined matchers
aria-labelledby with not found id
ByLabelText: aria-labelledby query selector
ByLabelText: get by label concat values (#681) (53e0d18), closes #545
types: allow bound function to accept string and regex matcher
role: support {checked: true} for checkbox / radio
Consider title for name of svg element
escape regexps that are used as query suggestion arguments
add allowed roles to role query types
Your coding agent can read these notes before it upgrades. Set up the MCP server →