How to test promises in Jest?

Sometimes, we want to test promises in Jest.

In this article, we’ll look at how to test promises in Jest.

How to test promises in Jest?

To test promises in Jest, we can use the resolves.toEqual and rejects.toEqual methods.

For instance, we write

describe('Fetching', () => {
  const filters = {
    startDate: '2015-09-01'
  };
  const api = new TestApi();

  it('should reject if no startdate is given', () => {
    expect.assertions(1);
    return expect(MyService.fetch()).rejects.toEqual({
      error: 'Your code message',
    });
  });


  it('should return expected data', () => {
    expect.assertions(1);
    return expect(MyService.fetch(filters, null, api)).resolves.toEqual(extectedObjectFromApi);
  });
});

to call resolves.toEqual to check the resolve value of the promise returned by MyService.fetch method.

And we call rejects.toEqual to test the rejection message of the promise returned by MyService.fetch().

Conclusion

To test promises in Jest, we can use the resolves.toEqual and rejects.toEqual methods.