DEV Community

Marco
Marco

Posted on

Test if a promise throw an Error

Hi, few weeks ago I had to solve this problem,

If the API return 404 I want my code to Throw and error, in general fetch will not throw an error on API failure with exception of a time out so I had to force that behavior:

Here is my base code

const response = await fetch(url);
 if (!response.ok) {
    if(response.status !== 404){
        throw new Error(`Error on details API ${response.status}`)
      }
  }
Enter fullscreen mode Exit fullscreen mode

Ok... here the solution I end up with:

    await expect(
                api.fetchEvent(body)
    ).rejects.toThrow('Error on details API 404');
Enter fullscreen mode Exit fullscreen mode

It can be improved but I thought sharing the solution may help somebody else

Top comments (0)