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

227
Views
¿Cómo puedo manejar una promesa en Jest?

Recibo un error justo en esta parte de mi código. Received promise resolved instead of rejected y no estoy seguro de cómo manejar esto, ¿alguien puede ayudarme?

 it("should not create a media if the user doesn't exist", async () => { user.user= undefined; await usersRepository.save(user); await expect( createMedia.execute({ userId: user.id, type: 'video', media: 'video-media', description: 'description', }), ).rejects.toBeInstanceOf(AppError); });

Y:

 expect(received).rejects.toThrow() Received promise resolved instead of rejected Resolved to value: {"description": "description", "id": "id number", "media": "video-media", "userId": "id user", "type": "video"}
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Su código está creando una promesa exitosa, que luego prueba contra un rechazo, por lo que falla porque se ejecuta con éxito y le dice que espera que falle.

Cuando usa .rejects , le está diciendo a la expect que espera que falle y sea rechazado, en este caso está teniendo éxito. Si cambia eso a resolves en lugar de rejects , funcionará.

O debe asegurarse de que la consulta que está realizando falle, es decir, actualizando algo que no existe.

Otra forma es ejecutar realmente su consulta, obtener el resultado y luego hacer una expect esperada en los datos devueltos.

Para mayor claridad, una promesa normal se ve así:

 const example = () => new Promise((resolve, reject) => ...

Luego puede llamar a esos métodos de resolución y rechazo dependiendo de si la promesa se resolvió correctamente o si falló, puede llamar al rechazo. Cuando usa .resolves o .rejects en broma, está probando esos métodos de resolución y rechazo en la promesa.

Cuando usa una función async , en realidad no ve eso, pero está haciendo lo mismo.

Lo que es más, cuando los usuarios cargan más archivos de los que realmente pueden, se romperá, razón por la cual en su caso en realidad no falla, porque en realidad es rechazado.

about 4 years ago · Juan Pablo Isaza Report
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!