IIC2513-2021-1 / projects

Repositorio oficial para los proyectos de ambas secciones del periodo 2021-1 del curso PUC IIC2513
14 stars 6 forks source link

Undefined en testing #138

Open bpardobravo opened 3 years ago

bpardobravo commented 3 years ago

Hola, esto es una suerte de continuación a la issue #135, pero como me la marcaron como resuelta no sabía si verían un nuevo comentario ahí. Resumen: tengo una vista que estoy testeando (BookOne) que hace un fetch (bookResponse), y que además importa a un componente (showBook) que hace otro fetch (reviewsResponse), y no entiendo bien si es el orden o algo más de los fetchmock o los act lo que hace que las variables que corresponden al bookResponse (el de la vista principal) queden undefined en el snapshot, mientras que las de reviewsResponse funcionan. Viendo la #131 traté algo así (pero me sale todo undefined):

it('renders the book detail page with log out option in navbar', async () => {
      let testRenderer;
      fetch.mockResponses([JSON.stringify(bookResponse)], [JSON.stringify(reviewsResponse)]);
      await act(() => {
        testRenderer = renderer.create(<TestRouter path="/books/1" />);
      });

      await act(async () => {});
      const tree = testRenderer.toJSON();
      expect(tree).toMatchSnapshot();
});

He estado tratando con varias combinaciones de distintas formas de escribir los fetch y act, pero no entiendo muy bien el "hacer un act por cada re-render" ni donde irían dichos act, la mayoría de las cosas que pillo en internet me llevan a todo undefined y el resto me lleva a errores como el de la issue pasada. Pd. Experimenté con borrar la componente importada y el segundo fetch.mockResponse y todo funcionó bien (me da las variables), así que el problema va por el hecho de que hayan dos fetch...creo.