Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

390
Views
Mocking React Query useQueryClient para probar los datos almacenados en caché

Uso un enlace personalizado para compartir una función de increment en mi aplicación (incrementa las cantidades en un carrito de compras).

Lo que hace esa función:

  • obtiene un objeto de datos de un caché de React Query
  • incrementa la propiedad de quantity de datos
  • realiza una llamada API a través de React Query useMutation y luego, si tiene éxito, actualiza el caché de React Query

Después de eso, los componentes leen el caché del carrito de React Query y actualizan la interfaz de usuario con la nueva cantidad.

El gancho hace el trabajo y finalmente el caché se actualiza como se esperaba.

Ahora, trato de probar el enlace en un componente para verificar que la interfaz de usuario se actualice en consecuencia.

La llamada a la API se simula usando msw . Su valor devuelto se usa para actualizar el caché:

 rest.put(`${api}/carts/1`, (req, res, ctx) => { return res(ctx.json({ data: [{ id: 1, quantity: 2 }] })); })

También me burlé de las funciones react-query queryClient.setQueryData y getQueryData para poder probar sus valores de retorno.

 jest.mock("react-query", () => ({ ...jest.requireActual("react-query"), useQueryClient: () => ({ setQueryData: jest.fn(), getQueryData: jest .fn() .mockReturnValueOnce({ data: [{ id: 1, quantity: 1 }] }) .mockReturnValueOnce({ data: [{ id: 1, quantity: 2 }] }), }), }));

Finalmente, pruebo la interfaz de usuario que debería actualizarse con la nueva cantidad, pero getQueryData siempre devuelve la quantity: 1 , incluso con llamadas múltiples.

Ahora no estoy seguro de tener el enfoque correcto para esa prueba.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!