Aquí está mi código para una información sobre herramientas que alterna la display: block en MouseOver y en la display: none .
it('should show and hide the message using onMouseOver and onMouseOut events respectively', () => { const { queryByTestId, queryByText } = render( <Tooltip id="test" message="test" />, ) fireEvent.mouseOver(queryByTestId('tooltip')) expect(queryByText('test')).toBeInTheDocument() fireEvent.mouseOut(queryByTestId('tooltip')) expect(queryByText('test')).not.toBeInTheDocument() cleanup() })Sigo recibiendo el error TypeError: expect(...).toBeInTheDocument no es una función
¿Alguien tiene alguna idea de por qué sucede esto? Mis otras pruebas para renderizar y tomar una instantánea del componente funcionan como se esperaba. Al igual que queryByText y queryByTestId.
Como mencionó Giorgio, necesitas instalar jest-dom. Esto es lo que funcionó para mí:
(Estaba usando mecanografiado)
npm i --save-dev @testing-library/jest-domLuego agregue una importación a su setupTests.ts
import '@testing-library/jest-dom/extend-expect';Luego, en su jest.config.js puede cargarlo a través de:
"setupFilesAfterEnv": [ "<rootDir>/src/setupTests.ts" ]Cuando haga npm i @testing-library/react , asegúrese de que haya un archivo setupTests.js con la siguiente declaración en él
import '@testing-library/jest-dom/extend-expect';