Obtengo TypeError: actImplementation no es una función cuando intento una prueba simple para este componente
import React from 'react'; import { StyledHeaderContainer, StyledTitle } from './styled'; export const Header = () => { return ( <StyledHeaderContainer> <StyledTitle data-testid='title-test-id'>Subject Access Request</StyledTitle> </StyledHeaderContainer> ); };esta es mi prueba
import * as React from 'react'; import 'jest-styled-components'; import { render, screen } from '@testing-library/react'; import { Header } from '../'; import "@testing-library/jest-dom"; describe('Header', () => { it('is rendered correctly', () => { expect(<Header />).toMatchSnapshot(); }); }); describe('Title', () => { it('should have correct text', () => { render(<Header />); expect(screen.getByTestId('title-test-id')).toHaveTextContent('Subject Access Request'); }) }) Está apuntando al render(<Header /) como el problema
¿Alguien tiene alguna idea?
Recibí el mismo error al usar react@17 , react-dom@18 y @testing-library-react@13 . Actualizar react a 18 resolvió el problema.
No está importando el encabezado correctamente, cambie la importación a:
import { Header } from '../Header';(o cualquier archivo que esté exportando el componente de encabezado)
Además, su primera prueba no está procesando un componente, por lo que la prueba está fallando.
cambiarlo a:
it('is rendered correctly', () => { render(<Header />); expect(<Header />).toMatchSnapshot(); });Bien, después de muchas pruebas y errores, resultó ser una solución simple. Apliqué esta importación en mi prueba, pero no la import * as React from 'react';