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

171
Views
Problemas con las pruebas asíncronas usando fetch y spyOn en broma

Tengo un problema en el que el caso final del bloque test.each a continuación parece ejecutarse con la implementación real de fetch() en lugar de la versión espía.

 describe('renders correct number of components', () => { afterEach(() => { jest.restoreAllMocks(); }); test.each([1,2,3,4])('renders %i components', async (componentCount) => { jest.spyOn(window, 'fetch').mockResolvedValueOnce({ json: async () => ({ components: componentCount }) } as Response); render(<ParentComponent />); expect(await screen.findAllByText(/my component/i)).toHaveLength(componentCount); }); });

La implementación real es:

 const getSomeData = async (): Promise<ComponentData> => { const res = await fetch('http://localhost:8080', { method: "GET" }); return res.json(); }

Cuando ejecuto las pruebas, las primeras 3 pasan bien, sin embargo, la cuarta arroja un Error: connect ECONNREFUSED 127.0.0.1:8080 . Si quito la 4ta prueba pasa lo mismo con la 3ra.

Si cambio http://localhost:8080 a algo como https://google.com , aparece una advertencia sobre un "proceso de trabajo que no se cierra correctamente", pero todas las pruebas pasan y no hay errores.

Me parece que de alguna manera el fetch() restaurado está llegando a la prueba final sin ser burlado por spyOn() pero por mi vida no puedo ver cómo.

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!