Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

274
Vistas
Prueba de una ruta de código de rechazo de promesa con broma

Tengo una situación en la que intento probar la ruta del código cuando se rechaza una promesa. La configuración es relativamente complicada, pero la he reducido a lo que es un ejemplo mínimo reproducible:

 let resolver; let rejecter; const p = new Promise((resolve, reject) => { resolver = resolve; rejecter = reject; }); const f = jest.fn((x) => { console.log(x); }); const run = () => { return p .then(() => { f("resolved"); }) .catch(() => { f("rejected"); }); }; beforeEach(() => { f.mockClear(); }); // this test passes test("it should call with resolved when p resolves", async () => { run(); resolver(); await p; expect(f).toHaveBeenCalledWith("resolved"); }); // this test fails test("it should call with rejected when p rejects", async () => { run(); rejecter(); await p; expect(f).toHaveBeenCalledWith("rejected"); });

Mi problema es que, a pesar de que f se llama con "rejected" , la prueba falla, con la razón

 thrown: undefined

Mi conjetura en este punto es que tiene algo que ver con el hecho de que la promesa se está rechazando; Tenía la esperanza de que esto no sería un problema, ya que está atrapado. ¿Cómo puedo hacer que esta prueba se complete con éxito?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Arreglé esto agregando una catch en la promesa p :

 // this test fails test("it should call with rejected when p rejects", async () => { run(); rejecter(); await p.catch(() => {}); expect(f).toHaveBeenCalledWith("rejected"); });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda