With
react-testing-library
,
you can render a component and make assertions about the different parts of the
component that get rendered.
You can also make assertions that certain things don't get rendered. To do that, first render the component:
import { render, screen } from '@testing-library/react'
import '@testing-library/jest-dom/extend-expect'
import MyComponent from '../MyComponent'
test('renders component without Click Me button', () => {
render(<MyComponent />)
})
Then add a not
expectation with a query*
-style matcher:
expect(screen.queryByText('Click Me')).not.toBeInTheDocument()
You'll get an immediate test failure if you try to directly select for the element using a get*
-style matcher:
// ❌ will fail on `getByText` before the rest of the
// assertion can be evaluated.
expect(screen.getByText('Click Me')).not.toBeInTheDocument()