wheresrhys / fetch-mock-jest

Jest wrapper for fetch-mock, a comprehensive stub for fetch
http://www.wheresrhys.co.uk/fetch-mock/
MIT License
60 stars 11 forks source link

when using delay and jest modern fakeTimers it seems to be using a real delay #58

Open trajano opened 1 year ago

trajano commented 1 year ago

I was trying to introduce a "delay" on the processing for the response so I used the { delay } option. But noticed my timings are getting randomized.

Upon closer inspection it seemed that there was a real delay once I increased the amount of time I was processing. So it is not respecting the modern jest.useFakeTimers

Ideally I was hoping it will use the setTimeout that is provided by jest so I can control the behaviour, but it is using the real thing.

trajano commented 1 year ago

The work around for anyone interested is

Given

.post("http://asdf.com/refresh", response, {delay: 1000});

Replace with

.post("http://asdf.com/auth", 
  new Promise((resolve) => setTimeout(() => resolve(response), 1000)))