jest-fetch-mock icon indicating copy to clipboard operation
jest-fetch-mock copied to clipboard

Add support for `AbortSignal.timeout()` `TimeoutError`

Open Radi-Mortada opened this issue 2 years ago • 0 comments

Currently the abort signal error is forced to be as following: https://github.com/jefflau/jest-fetch-mock/blob/master/src/index.js#L88 source code:

const abortError = () =>
  new DOMException('The operation was aborted. ', 'AbortError')

My test mock:

  const abortSignalTimeout = jest.spyOn(AbortSignal, 'timeout');

  beforeAll(() => {
    fetchMock.mockResponseOnce(() => {
      const promise = new Promise((resolve) => {
        setTimeout(() => {
          resolve('resolved after timeout of `5`');
        }, 5);
      });

      return promise;
    });

    const signal = AbortSignal.timeout(1);

    abortSignalTimeout.mockReturnValue(signal);
  });

there is no way to obtain the correct abort error TimeoutError instead of AbortError https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/timeout

Radi-Mortada avatar Dec 29 '22 15:12 Radi-Mortada