From 181b2ee4313cef4f0775a2926ff47c70af123e72 Mon Sep 17 00:00:00 2001 From: Matan Borenkraout Date: Wed, 8 Jul 2020 21:14:19 +0300 Subject: [PATCH 1/3] fix(flushMicroTasks): Fallback to no scheduler in case of exception Closes #736 --- src/flush-microtasks.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/flush-microtasks.js b/src/flush-microtasks.js index 99b56ea5..b4fd4848 100644 --- a/src/flush-microtasks.js +++ b/src/flush-microtasks.js @@ -20,7 +20,7 @@ function getIsUsingFakeTimers() { const globalObj = typeof window === 'undefined' ? global : window let Scheduler = globalObj.Scheduler -const isModernScheduleCallbackSupported = satisfies(React.version, '>16.8.6', { +let isModernScheduleCallbackSupported = satisfies(React.version, '>16.8.6', { includePrerelease: true, }) @@ -58,6 +58,17 @@ try { 'if you encounter this warning.', ) } + + if (isModernScheduleCallbackSupported) { + // eslint-disable-next-line no-console + console.error( + 'This environment does not support module requiring, so we cannot require the Scheduler. ' + + 'To fix this you can require the Scheduler in your test setup file.', + ) + + // Fallback to no scheduleCallback Supported. + isModernScheduleCallbackSupported = false + } } } From aa355092573b3d5c20306dbf53dc13831239f80f Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Wed, 8 Jul 2020 12:36:32 -0600 Subject: [PATCH 2/3] Update src/flush-microtasks.js --- src/flush-microtasks.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/flush-microtasks.js b/src/flush-microtasks.js index 711f6b70..db7f338d 100644 --- a/src/flush-microtasks.js +++ b/src/flush-microtasks.js @@ -59,19 +59,13 @@ try { ) } - if (isModernScheduleCallbackSupported) { - // eslint-disable-next-line no-console - console.error( - 'This environment does not support module requiring, so we cannot require the Scheduler. ' + - 'To fix this you can require the Scheduler in your test setup file.', - ) - - // Fallback to no scheduleCallback Supported. - isModernScheduleCallbackSupported = false - } } } +const isModernScheduleCallbackSupported = Scheduler && satisfies(React.version, '>16.8.6', { + includePrerelease: true, +}) + function scheduleCallback(cb) { const NormalPriority = Scheduler ? Scheduler.NormalPriority || Scheduler.unstable_NormalPriority From 1df3089f4597822504c6e7efe3fc5eca82dde758 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Wed, 8 Jul 2020 12:36:38 -0600 Subject: [PATCH 3/3] Update src/flush-microtasks.js --- src/flush-microtasks.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/flush-microtasks.js b/src/flush-microtasks.js index db7f338d..3789bf80 100644 --- a/src/flush-microtasks.js +++ b/src/flush-microtasks.js @@ -20,9 +20,6 @@ function getIsUsingFakeTimers() { const globalObj = typeof window === 'undefined' ? global : window let Scheduler = globalObj.Scheduler -let isModernScheduleCallbackSupported = satisfies(React.version, '>16.8.6', { - includePrerelease: true, -}) let didWarnAboutMessageChannel = false let enqueueTask