diff --git a/src/cleanup.js b/src/cleanup.js index 3699180a..d3172c46 100644 --- a/src/cleanup.js +++ b/src/cleanup.js @@ -1,9 +1,6 @@ -import flushMicroTasks from './flush-microtasks' - let cleanupCallbacks = [] async function cleanup() { - await flushMicroTasks() for (const callback of cleanupCallbacks) { await callback() } diff --git a/src/flush-microtasks.js b/src/flush-microtasks.js deleted file mode 100644 index 0869dfef..00000000 --- a/src/flush-microtasks.js +++ /dev/null @@ -1,50 +0,0 @@ -/* istanbul ignore file */ -// the part of this file that we need tested is definitely being run -// and the part that is not cannot easily have useful tests written -// anyway. So we're just going to ignore coverage for this file -/** - * copied from React's enqueueTask.js - * copied again from React Testing Library's flush-microtasks.js - */ - -let didWarnAboutMessageChannel = false -let enqueueTask -try { - // read require off the module object to get around the bundlers. - // we don't want them to detect a require and bundle a Node polyfill. - const requireString = `require${Math.random()}`.slice(0, 7) - const nodeRequire = module && module[requireString] - // assuming we're in node, let's try to get node's - // version of setImmediate, bypassing fake timers if any. - enqueueTask = nodeRequire.call(module, 'timers').setImmediate -} catch (_err) { - // we're in a browser - // we can't use regular timers because they may still be faked - // so we try MessageChannel+postMessage instead - enqueueTask = (callback) => { - const supportsMessageChannel = typeof MessageChannel === 'function' - if (supportsMessageChannel) { - const channel = new MessageChannel() - channel.port1.onmessage = callback - channel.port2.postMessage(undefined) - } else if (didWarnAboutMessageChannel === false) { - didWarnAboutMessageChannel = true - - // eslint-disable-next-line no-console - console.error( - 'This browser does not have a MessageChannel implementation, ' + - 'so enqueuing tasks via await act(async () => ...) will fail. ' + - 'Please file an issue at https://github.com/facebook/react/issues ' + - 'if you encounter this warning.' - ) - } - } -} - -export default function flushMicroTasks() { - return { - then(resolve) { - enqueueTask(resolve) - } - } -}