eslint-plugin-jest-dom
eslint-plugin-jest-dom copied to clipboard
jest-dom/prefer-to-have-text-content leads to unexpected behaviour
-
eslint-plugin-jest-dom
version: 5.1.0 -
node
version: 18.14.2 -
npm
version: yarn 3
Relevant code or config
What I wanted to use
expect(
screen.getByTestId('location')
). toHaveTextContent('/');
What I'm forced to use:
// Can not use toHaveTextContent because it doesn't match exact text
// eslint-disable-next-line jest-dom/prefer-to-have-text-content
expect(
screen.getByTestId('location')
.textContent
).toBe('/');
What you did: I wanted to ensure that the tested value is exactly the value I pass to assertion.
What happened:
Eslint rule warns to use toHaveTextContent
. Unfortunately, that change is also changing the behavior.
Problem description:
I believe everything is clear from the above examples and explanations. The jest-dom/prefer-to-have-text-content
rule forces me to change my code to a version that doesn't fulfill my requirements.
Suggested solution:
The rule should only be triggered if the assertion toContain
or similar is used.
Extend toHaveTextContent
with exact option. Or add toBeTextContent
.