From e54c66d45bc1fa7ec09285fade62caa7833e5b52 Mon Sep 17 00:00:00 2001 From: Tim Golen Date: Mon, 23 May 2022 11:08:47 -0600 Subject: [PATCH 1/2] Simplify the ready state of the welcome task --- src/libs/actions/Welcome.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/libs/actions/Welcome.js b/src/libs/actions/Welcome.js index e8e09131e315..375d89adff7f 100644 --- a/src/libs/actions/Welcome.js +++ b/src/libs/actions/Welcome.js @@ -8,9 +8,11 @@ import * as Policy from './Policy'; import ONYXKEYS from '../../ONYXKEYS'; import NameValuePair from './NameValuePair'; import CONST from '../../CONST'; -import createOnReadyTask from '../createOnReadyTask'; -const readyTask = createOnReadyTask(); +let resolveIsReadyPromise; +let isReadyPromise = new Promise((resolve) => { + resolveIsReadyPromise = resolve; +}); let isFirstTimeNewExpensifyUser; let isLoadingReportData = true; @@ -28,7 +30,7 @@ function checkOnReady() { return; } - readyTask.setIsReady(); + resolveIsReadyPromise(); } Onyx.connect({ @@ -91,7 +93,7 @@ Onyx.connect({ * @param {Function} params.showCreateMenu */ function show({routes, showCreateMenu}) { - readyTask.isReady().then(() => { + isReadyPromise.then(() => { if (!isFirstTimeNewExpensifyUser) { return; } @@ -122,7 +124,9 @@ function show({routes, showCreateMenu}) { } function resetReadyCheck() { - readyTask.reset(); + isReadyPromise = new Promise((resolve) => { + resolveIsReadyPromise = resolve; + }); } export { From bb2b7fab80a0d10a88a82844ac69f365c8bbd063 Mon Sep 17 00:00:00 2001 From: Tim Golen Date: Tue, 24 May 2022 09:25:08 -0600 Subject: [PATCH 2/2] Remove createonreadytask --- src/libs/createOnReadyTask.js | 26 -------------------- tests/unit/createOnReadyTaskTest.js | 38 ----------------------------- 2 files changed, 64 deletions(-) delete mode 100644 src/libs/createOnReadyTask.js delete mode 100644 tests/unit/createOnReadyTaskTest.js diff --git a/src/libs/createOnReadyTask.js b/src/libs/createOnReadyTask.js deleted file mode 100644 index 564a668dad09..000000000000 --- a/src/libs/createOnReadyTask.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Helper method to create a task to track the "readiness" of something and defer any actions until after something is "ready". - * - * @example - * - * const task = createOnReadyTask(); - * task.isReady().then(() => doIt()); - * task.setIsReady(); // -> doIt() will now execute - * task.reset() // -> will let us reset the task (useful for testing) - * @returns {Object} - */ -export default function createOnReadyTask() { - let resolveIsReadyPromise; - let isReadyPromise; - function reset() { - isReadyPromise = (new Promise((resolve) => { - resolveIsReadyPromise = resolve; - })); - } - reset(); - return { - isReady: () => isReadyPromise, - setIsReady: () => resolveIsReadyPromise(), - reset, - }; -} diff --git a/tests/unit/createOnReadyTaskTest.js b/tests/unit/createOnReadyTaskTest.js deleted file mode 100644 index e1280e4d9f1c..000000000000 --- a/tests/unit/createOnReadyTaskTest.js +++ /dev/null @@ -1,38 +0,0 @@ -import createOnReadyTask from '../../src/libs/createOnReadyTask'; -import waitForPromisesToResolve from '../utils/waitForPromisesToResolve'; - -test('createOnReadyTask', () => { - // Given a generic onReady task and a mock callback executed when we are ready - const readyTask = createOnReadyTask(); - const mock = jest.fn(); - readyTask.isReady().then(mock); - return waitForPromisesToResolve() - .then(() => { - expect(mock).toHaveBeenCalledTimes(0); - - // When we set ready - readyTask.setIsReady(); - return waitForPromisesToResolve(); - }) - .then(() => { - // Then we should expect mock to be called - expect(mock).toHaveBeenCalledTimes(1); - - // When we reset the task and wait for it again - readyTask.reset(); - readyTask.isReady().then(mock); - return waitForPromisesToResolve(); - }) - .then(() => { - // Then we should not expect mock to be called again - expect(mock).toHaveBeenCalledTimes(1); - - // When we set it to ready again - readyTask.setIsReady(); - return waitForPromisesToResolve(); - }) - .then(() => { - // Then we should expect the mock to get called twice - expect(mock).toHaveBeenCalledTimes(2); - }); -});