Tengo una función que guarda una entidad y en la promesa quiero comprobar que se llama la eliminación.

En mi prueba de broma, pasa zumbando y no puedo pensar en cómo probarlo

Aquí están los fragmentos parciales, todo funciona, las promesas se llaman, etc., simplemente no puedo entender cómo probar que se llama 'deleteMessage'

              this.service
              .save(entity)
              .then(() => {
                this.sqsQueue.deleteMessage(message.ReceiptHandle!);
              })
              .catch((error) => {
                this.log.error('Error saving');
              });

En mi prueba utilizo

service.save = jest.fn().mockResolvedValue(null);
expect(sqsQueue.deleteMessage).toHaveBeenNthCalledWith(
      1,
      deleteItem1.ReceiptHandle
    );

Como se mencionó porque es una Promesa, la prueba no espera a que se guarde y ejecuta la expectativa que, por supuesto, falla porque la función aún no se ha ejecutado.

0
dale 22 ene. 2021 a las 11:58

1 respuesta

La mejor respuesta
test('item is deleted', () => {
  return service.save().then(() => {
   // Put your expects here
   });
});

Para obtener más información, consulte los documentos: https://jestjs.io/docs/en/asynchronous

0
fadzb 22 ene. 2021 a las 09:14