When using jest.useFakeTimers()
, why do setTimeout()
and setImmediate()
behave differently?:
beforeAll(jest.useFakeTimers);
afterAll(jest.useRealTimers);
describe("timer behavior", () => {
it('times out waiting for a setTimeout', async () => {
await new Promise(setTimeout);
});
it('successfully resolves a setImmediate', async () => {
await new Promise(setImmediate);
});
});
The setTimeout()
behavior makes sense to me, but why does a mocked setImmediate()
resolve as usual?