Skip to main content

jest-dom

jest-dom is a companion library for Testing Library that provides custom DOM element matchers for Jest

npm install --save-dev @testing-library/jest-dom

Then follow usage section from jest-dom's documentation to add the matchers to Jest.

import {screen} from '@testing-library/dom'

test('uses jest-dom', () => {
document.body.innerHTML = `
<span data-testid="not-empty"><span data-testid="empty"></span></span>
<div data-testid="visible">Visible Example</div>
`

expect(screen.queryByTestId('not-empty')).not.toBeEmptyDOMElement()
expect(screen.getByText('Visible Example')).toBeVisible()
})

Note: when using some of these matchers, you may need to make sure you use a query function (like queryByTestId) rather than a get function (like getByTestId). Otherwise the get* function could throw an error before your assertion.

Check out jest-dom's documentation for a full list of available matchers.