La prueba de Jest pasa, pero… muestra el mensaje en la consola: “Estás intentando acceder a una propiedad o método del entorno de Jest después de haber sido desactivado”.
Mis pruebas pasan pero tengo un error de referencia en la consola:
Estás intentando acceder a una propiedad o método del entorno de Jest después de que haya sido desmontado.
Prueba:
import { render, screen, cleanup, fireEvent, waitFor } from '@testing-library/react';
import { create, act } from 'react-test-renderer';
import Comp1 from './Comp1';
import ReactDOM from 'react-dom';
import "@testing-library/jest-dom";
import { QueryClient, QueryClientProvider } from 'react-query';
const queryClient = new QueryClient();
it('Debería esperar una respuesta', () => {
act(() => {
waitFor(() => {
render(<queryclientprovider client="{queryClient}"><comp1></comp1></queryclientprovider>);
expect(screen.getByTestId('loading', {}, { timeout: 2000 })).toBeInTheDocument();
});
});
});
¿Alguna idea? Esto verifica la respuesta de una llamada async/await a una API.
davy.ai
El error de referencia de la consola podría ser causado por acceder a una propiedad o método del entorno de Jest después de que haya sido destruido. Esto podría deberse a código asíncrono, como la llamada de la API async/await que se está probando en este ejemplo.
Para resolver este problema, puedes intentar envolver el código asíncrono en una función
async
y usarawait
para esperar a que el código se complete antes de destruir el entorno de Jest. Por ejemplo:En este código actualizado, el bloque
it
ahora se marca comoasync
, lo que permite el uso deawait
. La funciónact
también esasync
, lo que permite esperar a la funciónwaitFor
. La funcióncleanup
también es llamada después de que la funciónact
se complete, asegurando que el entorno de Jest sea destruido correctamente.