Open lucas-valenzuela opened 3 years ago
Hola @lucas-valenzuela.
¿Cómo están haciendo los dos fetches? ¿Uno inmediatamente después del otro? ¿El segundo en base a alguna condición previa que debe cumplirse? Depende bastante de eso la forma de abordarlo.
En general, para cualquier cambio que signifique un re-render de un componente, debería llamarse a act()
. Podrías ver si te funciona repitiendo la línea que llama a esta función con async/await
.
Hola profe!
En la vista, un fetch se hace uno después de otro, no hay ninguna condición que deba cumplirse. Primero se hace un fetch al GET de la info de un libro y después un fetch al GET de las reviews de ese libro.
Probé con lo que me dijo de agregar un segundo act después del renderer.create
y ahora me funciona! Lo hice con fetch.mockResponses
de esta forma:
Lo hice con fetch.mockResponses
de esta forma:
fetch.mockResponses(
[JSON.stringify(bookInfo)],
[JSON.stringify(bookReviews)]
);
Muchas gracias por su respuesta, Lucas
Súper bien entonces. El package jest-fetch-mock
debería tener más flexibilidad para retornar responses también, probablemente en base a la URL que le pasas, pero para el caso que mencionas, la solución con mockResponses
debería ser suficiente.
Hola! con mi equipo hemos seguido todos los pasos de la cápsula y nos ha funcionado casi todo bien, exceptuando unas vistas que tenemos en donde hacemos dos fetchs (por ejemplo, somos Bokkkers y tenemos una vista en que hacemos un GET a la info de un libro y después un GET a las reviews que se han hecho a ese libro). He buscado bastante en internet y he encontrado soluciones como usar mockResponses o once en vez de mockResponse, pero ninguna nos está funcionando (al hacer render solo se retorna nuestra navbar, sin la info de los gets). Estaríamos muy agradecidos si alguien nos pudiera dar un insight sobre cómo seguir, puesto que probablemente habrán otros equipos que se enfrentarán a la misma duda.
Muchos saludos, Lucas