Estoy tratando de simular mi componente funcional React y probar si los resultados de una llamada API se procesan correctamente. Puedo ver en la página que todo funciona, pero me han pedido que escriba una prueba de "lógica empresarial".
La página obtiene una matriz de objetos de la API, luego los mapea para generar vistas previas posteriores.
La llamada a la API ocurre en el primer renderizado (en useEffect), y los primeros seis resultados son visibles. Hay seis elementos con el nombre de clase "Post-Vista previa" en la página en ese punto.
Mi primera pregunta es: ¿Qué significa "lógica de negocios" en el contexto de una aplicación React? Mi segunda pregunta es: ¿Cómo puedo hacer una prueba que realmente represente la página en respuesta a la llamada a la API? El dummyData aquí es una matriz de seis objetos, copiados directamente de la API real.
test("Renders the page", async () => { act(() => { mockedAxios.get.mockResolvedValue({ data: dummyData }); ReactDOM.render(<App />, container); }); expect(container.innerHTML).toContain("climate"); // This test passes }); test("Renders the results of the API call", async () => { mockedAxios.get.mockResolvedValue({ data: dummyData }); act(() => { ReactDOM.render(<App />, container); }); const postPreview = container.getElementsByClassName("Post-Preview"); console.log(postPreview); // Returns empty HTMLCollection });