diff --git a/packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.internal.js index 3fc258e365b..5c352637897 100644 --- a/packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.internal.js +++ b/packages/react-dom/src/__tests__/ReactDOMSuspensePlaceholder-test.internal.js @@ -43,9 +43,8 @@ describe('ReactDOMSuspensePlaceholder', () => { } jest.advanceTimersByTime(ms); // Wait until the end of the current tick - return new Promise(resolve => { - setImmediate(resolve); - }); + // We cannot use a timer since we're faking them + return Promise.resolve().then(() => {}); } function Text(props) { diff --git a/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.internal.js b/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.internal.js index ad5c089c8c5..4a15ee29051 100644 --- a/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.internal.js @@ -62,9 +62,8 @@ describe('ReactSuspenseWithNoopRenderer', () => { } jest.advanceTimersByTime(ms); // Wait until the end of the current tick - return new Promise(resolve => { - setImmediate(resolve); - }); + // We cannot use a timer since we're faking them + return Promise.resolve().then(() => {}); } function Text(props) { diff --git a/packages/react/src/__tests__/ReactProfiler-test.internal.js b/packages/react/src/__tests__/ReactProfiler-test.internal.js index b1593ff31c1..18b42dde793 100644 --- a/packages/react/src/__tests__/ReactProfiler-test.internal.js +++ b/packages/react/src/__tests__/ReactProfiler-test.internal.js @@ -2194,9 +2194,8 @@ describe('Profiler', () => { function awaitableAdvanceTimers(ms) { jest.advanceTimersByTime(ms); // Wait until the end of the current tick - return new Promise(resolve => { - setImmediate(resolve); - }); + // We cannot use a timer since we're faking them + return Promise.resolve().then(() => {}); } it('traces both the temporary placeholder and the finished render for an interaction', async () => { diff --git a/packages/react/src/__tests__/ReactProfilerDOM-test.internal.js b/packages/react/src/__tests__/ReactProfilerDOM-test.internal.js index 75253600066..354ccf25b8b 100644 --- a/packages/react/src/__tests__/ReactProfilerDOM-test.internal.js +++ b/packages/react/src/__tests__/ReactProfilerDOM-test.internal.js @@ -18,10 +18,7 @@ let ReactCache; function initEnvForAsyncTesting() { // Boilerplate copied from ReactDOMRoot-test // TODO pull this into helper method, reduce repetition. - const originalDateNow = Date.now; - global.Date.now = function() { - return originalDateNow(); - }; + // TODO remove `requestAnimationFrame` when upgrading to Jest 24 with Lolex global.requestAnimationFrame = function(cb) { return setTimeout(() => { cb(Date.now()); @@ -140,7 +137,7 @@ describe('ProfilerDOM', () => { // Evaluate in an unwrapped callback, // Because trace/wrap won't decrement the count within the wrapped callback. - setImmediate(() => { + Promise.resolve().then(() => { expect(onInteractionTraced).toHaveBeenCalledTimes(1); expect( onInteractionScheduledWorkCompleted,