Skip to content

jest-dom/prefer-to-have-text-content leads to unexpected behaviour #337

Open
@darkowic

Description

@darkowic
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions