diff --git a/package-lock.json b/package-lock.json index d0b0abc96843..1ab88e5ab548 100644 --- a/package-lock.json +++ b/package-lock.json @@ -122,7 +122,7 @@ "react-native-localize": "^3.5.4", "react-native-nitro-modules": "0.35.0", "react-native-nitro-sqlite": "9.6.0", - "react-native-onyx": "3.0.89", + "react-native-onyx": "3.0.88", "react-native-pager-view": "8.0.0", "react-native-pdf": "7.0.2", "react-native-permissions": "^5.4.0", @@ -36672,9 +36672,9 @@ } }, "node_modules/react-native-onyx": { - "version": "3.0.89", - "resolved": "https://registry.npmjs.org/react-native-onyx/-/react-native-onyx-3.0.89.tgz", - "integrity": "sha512-ZJdDf5neMIQgkXZbU7B+VYV/6kPf6+lqgz+mko8/B6LRhHFlHf8S02HxZ6q8c4nmaxEkF7uc9KioxPwTDI6g8Q==", + "version": "3.0.88", + "resolved": "https://registry.npmjs.org/react-native-onyx/-/react-native-onyx-3.0.88.tgz", + "integrity": "sha512-wCNHe+Kc6DX3yYVZxrITZdunu74P2x0XE7t8FGkpjEQdCRnlJhCTxn4NvxWZkURFxn5IRvIlVCGU8OdZhFNoOg==", "license": "MIT", "dependencies": { "ascii-table": "0.0.9", diff --git a/package.json b/package.json index b1ddcc853002..3bb2d9320620 100644 --- a/package.json +++ b/package.json @@ -195,7 +195,7 @@ "react-native-localize": "^3.5.4", "react-native-nitro-modules": "0.35.0", "react-native-nitro-sqlite": "9.6.0", - "react-native-onyx": "3.0.89", + "react-native-onyx": "3.0.88", "react-native-pager-view": "8.0.0", "react-native-pdf": "7.0.2", "react-native-permissions": "^5.4.0", diff --git a/src/libs/DistanceRequestUtils.ts b/src/libs/DistanceRequestUtils.ts index aa9a17d5b3f0..23913efa5e82 100644 --- a/src/libs/DistanceRequestUtils.ts +++ b/src/libs/DistanceRequestUtils.ts @@ -37,6 +37,7 @@ let allPolicies: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (value) => (allPolicies = value), }); diff --git a/src/libs/Fullstory/common.ts b/src/libs/Fullstory/common.ts index 0419440d03fc..595aa8793d48 100644 --- a/src/libs/Fullstory/common.ts +++ b/src/libs/Fullstory/common.ts @@ -18,6 +18,7 @@ import type {GetChatFSClass, ShouldInitialize} from './types'; let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, diff --git a/src/libs/Middleware/Pagination.ts b/src/libs/Middleware/Pagination.ts index d877a04f1595..65cf475aff5c 100644 --- a/src/libs/Middleware/Pagination.ts +++ b/src/libs/Middleware/Pagination.ts @@ -67,12 +67,14 @@ function registerPaginationConfig({ key: config.resourceCollectionKey, + waitForCollectionCallback: true, callback: (data) => { resources.set(config.resourceCollectionKey, data); }, }); Onyx.connectWithoutView({ key: config.pageCollectionKey, + waitForCollectionCallback: true, callback: (data) => { pages.set(config.pageCollectionKey, data); }, diff --git a/src/libs/Notification/LocalNotification/index.ts b/src/libs/Notification/LocalNotification/index.ts index f52489560980..6f35b7657b10 100644 --- a/src/libs/Notification/LocalNotification/index.ts +++ b/src/libs/Notification/LocalNotification/index.ts @@ -14,6 +14,7 @@ let allPolicies: OnyxCollection; // see https://github.com/Expensify/App/issues/66336 Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (value) => { allPolicies = value; }, @@ -24,6 +25,7 @@ let allPolicyTags: OnyxCollection; // see https://github.com/Expensify/App/issues/66336 Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.POLICY_TAGS, + waitForCollectionCallback: true, callback: (value) => { allPolicyTags = value; }, diff --git a/src/libs/Notification/PushNotification/shouldShowPushNotification.ts b/src/libs/Notification/PushNotification/shouldShowPushNotification.ts index 2c3631b9b7cc..34eb3d5d6bbc 100644 --- a/src/libs/Notification/PushNotification/shouldShowPushNotification.ts +++ b/src/libs/Notification/PushNotification/shouldShowPushNotification.ts @@ -29,12 +29,14 @@ Onyx.connectWithoutView({ let allReportActions: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => (allReportActions = value), }); let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => (allReports = value), }); diff --git a/src/libs/OptionsListUtils/index.ts b/src/libs/OptionsListUtils/index.ts index 5a2bea42166c..7a4985c91c24 100644 --- a/src/libs/OptionsListUtils/index.ts +++ b/src/libs/OptionsListUtils/index.ts @@ -233,6 +233,7 @@ import {doesPersonalDetailMatchSearchTerm, getCurrentUserSearchTerms, getPersona let allReports: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, @@ -248,6 +249,7 @@ const deprecatedCachedOneTransactionThreadReportIDs: Record; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { if (!actions) { return; diff --git a/src/libs/Parser.ts b/src/libs/Parser.ts index 741505d21d93..0f00f2920c67 100644 --- a/src/libs/Parser.ts +++ b/src/libs/Parser.ts @@ -11,6 +11,7 @@ const accountIDToNameMap: Record = {}; let reportIDToNameMap: Record = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { // Clear the map so removed reports don’t linger reportIDToNameMap = {}; diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index b08c62fcc1bb..bf2488490a50 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -104,6 +104,7 @@ function isHarvestCreatedExpenseReport(origin?: string, originalID?: string): bo let allReportActions: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { if (!actions) { return; @@ -115,6 +116,7 @@ Onyx.connect({ let allReports: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, @@ -141,6 +143,7 @@ Onyx.connect({ let allReportNameValuePair: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; diff --git a/src/libs/ReportTitleUtils.ts b/src/libs/ReportTitleUtils.ts index bb6fe531bf7d..99326090b90e 100644 --- a/src/libs/ReportTitleUtils.ts +++ b/src/libs/ReportTitleUtils.ts @@ -20,6 +20,7 @@ let allReportNameValuePairs: Record = {}; */ Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (val) => { allReportNameValuePairs = (val as Record) ?? {}; }, diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index e46310bc44aa..d47774354d55 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -1058,6 +1058,7 @@ Onyx.connect({ let deprecatedAllReportsDraft: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_DRAFT, + waitForCollectionCallback: true, callback: (value) => (deprecatedAllReportsDraft = value), }); @@ -1065,6 +1066,7 @@ let allPolicies: OnyxCollection; let policiesArray: Policy[] = []; Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (value) => { allPolicies = value; policiesArray = Object.values(value ?? {}).filter((policy): policy is Policy => !!policy); @@ -1074,6 +1076,7 @@ Onyx.connect({ let allPolicyDrafts: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY_DRAFTS, + waitForCollectionCallback: true, callback: (value) => (allPolicyDrafts = value), }); @@ -1081,6 +1084,7 @@ let deprecatedAllReports: OnyxCollection; let deprecatedReportsByPolicyID: ReportByPolicyMap; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { deprecatedAllReports = value; @@ -1112,6 +1116,7 @@ let deprecatedAllTransactions: OnyxCollection = {}; let deprecatedReportsTransactions: Record = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -1137,6 +1142,7 @@ Onyx.connect({ let allReportActions: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { if (!actions) { return; @@ -1149,6 +1155,7 @@ let allReportMetadata: OnyxCollection; const allReportMetadataKeyValue: Record = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_METADATA, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -1178,6 +1185,7 @@ Onyx.connectWithoutView({ let allReportNameValuePair: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; diff --git a/src/libs/UnreadIndicatorUpdater/index.ts b/src/libs/UnreadIndicatorUpdater/index.ts index c73fe9378b47..20937ed72075 100644 --- a/src/libs/UnreadIndicatorUpdater/index.ts +++ b/src/libs/UnreadIndicatorUpdater/index.ts @@ -43,6 +43,7 @@ let allReportNameValuePairs: OnyxCollection = {}; // This subscription is used to update the unread indicators count which is not linked to UI and it does not update any UI state. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -52,6 +53,7 @@ let allReportActions: OnyxCollection = {}; // This subscription is used to update the unread indicators count which is not linked to UI and it does not update any UI state. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => { allReportActions = value; }, @@ -60,6 +62,7 @@ Onyx.connectWithoutView({ let allDraftComments: OnyxCollection = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT, + waitForCollectionCallback: true, callback: (value) => { allDraftComments = value; }, @@ -132,6 +135,7 @@ const triggerUnreadUpdate = debounce(() => { // This subscription is used to update the unread indicators count which is not linked to UI and it does not update any UI state. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; triggerUnreadUpdate(); diff --git a/src/libs/actions/App.ts b/src/libs/actions/App.ts index c9dfa5a6b485..b34de34a4240 100644 --- a/src/libs/actions/App.ts +++ b/src/libs/actions/App.ts @@ -116,12 +116,14 @@ let allReports: OnyxCollection; let allPolicies: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (value) => { allPolicies = value; }, diff --git a/src/libs/actions/ClearReportActionErrors.ts b/src/libs/actions/ClearReportActionErrors.ts index ae3aafd75230..0e9abfb32630 100644 --- a/src/libs/actions/ClearReportActionErrors.ts +++ b/src/libs/actions/ClearReportActionErrors.ts @@ -19,12 +19,14 @@ type IgnoreDirection = 'parent' | 'child'; let allReportActions: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => (allReportActions = value), }); let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, diff --git a/src/libs/actions/Export.ts b/src/libs/actions/Export.ts index f732c8b051c8..1b32d3bf3c7e 100644 --- a/src/libs/actions/Export.ts +++ b/src/libs/actions/Export.ts @@ -60,6 +60,7 @@ function clearStaleExportDownloads() { // to the entire collection, which would cause unnecessary re-renders on every change. const connectionID = Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.EXPORT_DOWNLOAD, + waitForCollectionCallback: true, callback: (exportDownloads) => { Onyx.disconnect(connectionID); if (!exportDownloads) { diff --git a/src/libs/actions/IOU/index.ts b/src/libs/actions/IOU/index.ts index 92ac5d2d2116..72440db5c314 100644 --- a/src/libs/actions/IOU/index.ts +++ b/src/libs/actions/IOU/index.ts @@ -18,6 +18,7 @@ Onyx.connect({ let allTransactions: NonNullable> = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { if (!value) { allTransactions = {}; @@ -31,6 +32,7 @@ Onyx.connect({ let allTransactionDrafts: NonNullable> = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (value) => { allTransactionDrafts = value ?? {}; }, @@ -40,6 +42,7 @@ Onyx.connect({ let allTransactionViolations: NonNullable> = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, + waitForCollectionCallback: true, callback: (value) => { if (!value) { allTransactionViolations = {}; @@ -53,6 +56,7 @@ Onyx.connect({ let allPolicyTags: OnyxCollection = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY_TAGS, + waitForCollectionCallback: true, callback: (value) => { if (!value) { allPolicyTags = {}; @@ -65,6 +69,7 @@ Onyx.connect({ let allReports: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, @@ -73,6 +78,7 @@ Onyx.connect({ let allReportNameValuePairs: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -97,6 +103,7 @@ Onyx.connect({ let allReportActions: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { if (!actions) { return; diff --git a/src/libs/actions/OnyxDerived/index.ts b/src/libs/actions/OnyxDerived/index.ts index be8f4ed83d98..eb1e5eaeaa56 100644 --- a/src/libs/actions/OnyxDerived/index.ts +++ b/src/libs/actions/OnyxDerived/index.ts @@ -207,6 +207,7 @@ function init() { if (OnyxKeys.isCollectionKey(dependencyOnyxKey)) { Onyx.connectWithoutView({ key: dependencyOnyxKey, + waitForCollectionCallback: true, callback: (value, collectionKey) => { Log.info(`[OnyxDerived] dependency ${collectionKey} for derived key ${key} changed, recomputing`); setDependencyValue(dependencyIndex, value as Parameters[0][typeof dependencyIndex]); diff --git a/src/libs/actions/Policy/Member.ts b/src/libs/actions/Policy/Member.ts index b1c035bab8e6..9ba31d71887f 100644 --- a/src/libs/actions/Policy/Member.ts +++ b/src/libs/actions/Policy/Member.ts @@ -75,6 +75,7 @@ function hasPolicyAdminsRoomsAccess(role: string | undefined): boolean { let allReportActions: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => (allReportActions = actions), }); diff --git a/src/libs/actions/Report/DeleteReport.ts b/src/libs/actions/Report/DeleteReport.ts index af4c71de7595..a358be0411bd 100644 --- a/src/libs/actions/Report/DeleteReport.ts +++ b/src/libs/actions/Report/DeleteReport.ts @@ -15,12 +15,14 @@ import Onyx from 'react-native-onyx'; let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => (allReports = value), }); let allReportActions: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => (allReportActions = value), }); diff --git a/src/libs/actions/Report/MarkAllMessageAsRead.tsx b/src/libs/actions/Report/MarkAllMessageAsRead.tsx index 8b3e99bc5e8b..7faffae25c59 100644 --- a/src/libs/actions/Report/MarkAllMessageAsRead.tsx +++ b/src/libs/actions/Report/MarkAllMessageAsRead.tsx @@ -18,12 +18,14 @@ import Onyx from 'react-native-onyx'; let allReportActions: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => (allReportActions = value), }); let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => (allReports = value), }); diff --git a/src/libs/actions/Report/index.ts b/src/libs/actions/Report/index.ts index 40cee2652e23..223210742db8 100644 --- a/src/libs/actions/Report/index.ts +++ b/src/libs/actions/Report/index.ts @@ -53,6 +53,7 @@ import type UpdateRoomVisibilityParams from '@libs/API/parameters/UpdateRoomVisi import {READ_COMMANDS, SIDE_EFFECT_REQUEST_COMMANDS, WRITE_COMMANDS} from '@libs/API/types'; import * as ApiUtils from '@libs/ApiUtils'; import * as Browser from '@libs/Browser'; +import * as CollectionUtils from '@libs/CollectionUtils'; import type {CustomRNImageManipulatorResult} from '@libs/cropOrRotateImage/types'; import DateUtils from '@libs/DateUtils'; import * as Environment from '@libs/Environment/Environment'; @@ -413,7 +414,8 @@ type AddAttachmentWithCommentParams = { }; const addNewMessageWithText = new Set([WRITE_COMMANDS.ADD_COMMENT, WRITE_COMMANDS.ADD_TEXT_AND_ATTACHMENT]); -let allReportActions: OnyxCollection = {}; +// map of reportID to all reportActions for that report +const allReportActions: OnyxCollection = {}; const STALE_DM_RECOVERY_TARGET_TTL_MS = 30000; const staleDMRecoveryTargetBySourceReportID: Record = {}; const staleDMRecoverySourceByTargetReportID: Record = {}; @@ -464,14 +466,19 @@ function clearStaleDMRecoveryTargetByTargetReportID(targetReportID: string) { Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, - callback: (value) => { - allReportActions = value ?? {}; + callback: (actions, key) => { + if (!key || !actions) { + return; + } + const reportID = CollectionUtils.extractCollectionItemID(key); + allReportActions[reportID] = actions; }, }); let allReports: OnyxCollection; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, @@ -525,6 +532,7 @@ Onyx.connect({ let allAttachments: OnyxCollection = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => (allAttachments = value), }); @@ -1177,7 +1185,7 @@ function addComment({ } function reportActionsExist(reportID: string): boolean { - return allReportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${reportID}`] !== undefined; + return allReportActions?.[reportID] !== undefined; } function updateChatName(reportID: string, oldReportName: string | undefined, reportName: string, type: typeof CONST.REPORT.CHAT_TYPE.GROUP | typeof CONST.REPORT.CHAT_TYPE.TRIP_ROOM) { diff --git a/src/libs/actions/SplitExpenses.ts b/src/libs/actions/SplitExpenses.ts index 968212ab3068..74fa0cb44651 100644 --- a/src/libs/actions/SplitExpenses.ts +++ b/src/libs/actions/SplitExpenses.ts @@ -28,6 +28,7 @@ import {initDraftSplitExpenseDataForEdit, initSplitExpenseItemData, resolveSplit let allTransactions: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => (allTransactions = value), }); @@ -41,6 +42,7 @@ Onyx.connectWithoutView({ let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => (allReports = value), }); diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 920628c237e5..80a6739299fe 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -91,6 +91,7 @@ import Onyx from 'react-native-onyx'; let allReports: OnyxCollection = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; diff --git a/src/libs/actions/TransactionInlineEdit.ts b/src/libs/actions/TransactionInlineEdit.ts index b772085ee82d..f71ad2619604 100644 --- a/src/libs/actions/TransactionInlineEdit.ts +++ b/src/libs/actions/TransactionInlineEdit.ts @@ -79,6 +79,7 @@ type TransactionEditPermissions = { let allTransactions: NonNullable> = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value ?? {}; }, @@ -87,6 +88,7 @@ Onyx.connectWithoutView({ let allTransactionViolations: NonNullable> = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, + waitForCollectionCallback: true, callback: (value) => { allTransactionViolations = value ?? {}; }, @@ -95,6 +97,7 @@ Onyx.connectWithoutView({ let allReports: NonNullable> = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value ?? {}; }, @@ -103,6 +106,7 @@ Onyx.connectWithoutView({ let allReportActions: NonNullable> = {}; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (value) => { allReportActions = value ?? {}; }, diff --git a/src/libs/actions/replaceOptimisticReportWithActualReport.ts b/src/libs/actions/replaceOptimisticReportWithActualReport.ts index 20ca5b37f988..314f3445570d 100644 --- a/src/libs/actions/replaceOptimisticReportWithActualReport.ts +++ b/src/libs/actions/replaceOptimisticReportWithActualReport.ts @@ -41,17 +41,22 @@ let allReportDraftComments: Record = {}; // Draft comments are cached only for transferring to the preexisting report; no UI subscribes, so connectWithoutView() is used. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT, + waitForCollectionCallback: true, callback: (value) => (allReportDraftComments = value ?? {}), }); let allReports: OnyxCollection; -let allReportActions: OnyxCollection = {}; +const allReportActions: OnyxCollection = {}; // Report actions are cached only to resolve parent actions for IOU cleanup; no UI subscribes, so connectWithoutView() is used. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, - callback: (value) => { - allReportActions = value ?? {}; + callback: (actions, key) => { + if (!key || !actions) { + return; + } + const reportID = key.replace(ONYXKEYS.COLLECTION.REPORT_ACTIONS, ''); + allReportActions[reportID] = actions; }, }); @@ -74,7 +79,7 @@ function replaceOptimisticReportWithActualReport(report: Report, draftReportComm // If an optimistic IOU action was created before we knew a preexisting IOU action for the thread existed, // remove it to avoid duplicate IOU report actions if (isMoneyRequest(report) && parentReportID && parentReportActionID) { - const parentReportAction = allReportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${parentReportID}`]?.[parentReportActionID]; + const parentReportAction = allReportActions?.[parentReportID]?.[parentReportActionID]; if (parentReportAction?.isOptimisticAction) { Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${parentReportID}`, { [parentReportActionID]: null, @@ -113,7 +118,7 @@ function replaceOptimisticReportWithActualReport(report: Report, draftReportComm }); // Non-optimistic parent actions already exist, so we update their childReportID; // optimistic actions were already cleaned up above - const parentReportAction = parentReportID ? allReportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${parentReportID}`]?.[parentReportActionID] : null; + const parentReportAction = parentReportID ? allReportActions?.[parentReportID]?.[parentReportActionID] : null; if (parentReportAction && !parentReportAction.isOptimisticAction) { Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${parentReportID}`, { [parentReportActionID]: {childReportID: preexistingReportID}, @@ -238,6 +243,7 @@ function replaceOptimisticReportWithActualReport(report: Report, draftReportComm // Reports are observed only to detect preexistingReportID and run replacement; no UI subscribes, so connectWithoutView() is used. Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value: OnyxCollection) => { allReports = value; diff --git a/src/libs/registerPaginationConfig.ts b/src/libs/registerPaginationConfig.ts index 6f04e81c7ec1..e50f0f8f5046 100644 --- a/src/libs/registerPaginationConfig.ts +++ b/src/libs/registerPaginationConfig.ts @@ -18,6 +18,7 @@ import {canUserPerformWriteAction as canUserPerformWriteActionReportUtils} from let allReports: OnyxCollection; Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, @@ -31,6 +32,7 @@ let allReportNameValuePairs: OnyxCollection; */ Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, diff --git a/src/libs/telemetry/TelemetrySynchronizer.ts b/src/libs/telemetry/TelemetrySynchronizer.ts index 04f226ef6a47..3a6bd70f4b35 100644 --- a/src/libs/telemetry/TelemetrySynchronizer.ts +++ b/src/libs/telemetry/TelemetrySynchronizer.ts @@ -49,6 +49,7 @@ Onyx.connectWithoutView({ Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -60,6 +61,7 @@ Onyx.connectWithoutView({ Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; diff --git a/src/libs/telemetry/crashDiagnostics/index.ts b/src/libs/telemetry/crashDiagnostics/index.ts index ceb4fc2af78d..4cbe242cf461 100644 --- a/src/libs/telemetry/crashDiagnostics/index.ts +++ b/src/libs/telemetry/crashDiagnostics/index.ts @@ -493,6 +493,7 @@ function initializeCrashDiagnostics() { reportsConnection = Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value: OnyxCollection) => { reportsCount = value ? Object.keys(value).length : 0; }, diff --git a/src/setup/addUtilsToWindow.ts b/src/setup/addUtilsToWindow.ts index ec3935f4e2b3..c3bbc4a769c8 100644 --- a/src/setup/addUtilsToWindow.ts +++ b/src/setup/addUtilsToWindow.ts @@ -38,6 +38,7 @@ export default function addUtilsToWindow() { Onyx.disconnect(connection); resolve(value); }, + waitForCollectionCallback: true, }); }); }; diff --git a/tests/actions/AttachmentTest.ts b/tests/actions/AttachmentTest.ts index b71a6475813d..0f13417f98df 100644 --- a/tests/actions/AttachmentTest.ts +++ b/tests/actions/AttachmentTest.ts @@ -81,6 +81,7 @@ describe('AttachmentStorage', () => { const attachments = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -120,6 +121,7 @@ describe('AttachmentStorage', () => { const attachments = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -148,6 +150,7 @@ describe('AttachmentStorage', () => { Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -219,6 +222,7 @@ describe('AttachmentStorage', () => { Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -273,6 +277,7 @@ describe('AttachmentStorage', () => { Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; @@ -342,6 +347,7 @@ describe('AttachmentStorage', () => { Onyx.connect({ key: ONYXKEYS.COLLECTION.ATTACHMENT, + waitForCollectionCallback: true, callback: (value) => { if (!value) { return; diff --git a/tests/actions/DomainTest.ts b/tests/actions/DomainTest.ts index 742974ed9687..8921cfa50479 100644 --- a/tests/actions/DomainTest.ts +++ b/tests/actions/DomainTest.ts @@ -84,6 +84,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: ONYXKEYS.FORMS.CREATE_DOMAIN_FORM, + waitForCollectionCallback: false, callback: (form) => { expect(form?.hasCreationSucceeded).toBeFalsy(); expect(form?.errors).toBeFalsy(); @@ -135,6 +136,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect(errors?.errors).toBeFalsy(); }, @@ -142,6 +144,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_PENDING_ACTIONS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (pendingActions) => { expect(pendingActions?.pendingAction).toBeFalsy(); }, @@ -303,6 +306,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect(errors?.memberErrors?.[email]).toBeFalsy(); expect(errors?.memberErrors?.[optimisticAccountID]).toBeFalsy(); @@ -311,6 +315,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, + waitForCollectionCallback: false, callback: (domain) => { const securityGroup = domain?.[DOMAIN_SECURITY_GROUP as keyof typeof domain] as {shared?: Record} | undefined; expect(securityGroup?.shared?.[optimisticAccountID]).toBeFalsy(); @@ -579,6 +584,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, + waitForCollectionCallback: false, callback: (domain) => { const delegateData = domain?.[PRIVATE_VACATION_DELEGATE_KEY as keyof typeof domain] as BaseVacationDelegate | undefined; expect(delegateData?.delegate).toBe(previousDelegate); @@ -586,12 +592,14 @@ describe('actions/Domain', () => { }); await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect(errors?.memberErrors?.[domainMemberEmail]?.vacationDelegateErrors).toBeFalsy(); }, }); await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_PENDING_ACTIONS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (pendingActions) => { expect(pendingActions?.member?.[domainMemberEmail]?.vacationDelegate).toBeFalsy(); }, @@ -616,6 +624,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, + waitForCollectionCallback: false, callback: (domain) => { const delegateData = domain?.[PRIVATE_VACATION_DELEGATE_KEY as keyof typeof domain] as BaseVacationDelegate | undefined; expect(delegateData?.delegate).toBeFalsy(); @@ -648,6 +657,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect(errors?.memberErrors?.[accountID]).toBeFalsy(); expect(errors?.memberErrors?.[email]).toBeFalsy(); @@ -656,6 +666,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_PENDING_ACTIONS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (pendingActions) => { expect(pendingActions?.member?.[email]).toBeFalsy(); }, @@ -677,6 +688,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect(errors?.memberErrors?.[email]?.twoFactorAuthExemptEmailsError).toBeFalsy(); }, @@ -975,6 +987,7 @@ describe('actions/Domain', () => { setDomainMembersSelectedForMove(memberAccountIDs); await TestHelper.getOnyxData({ key: ONYXKEYS.RAM_ONLY_DOMAIN_MEMBERS_SELECTED_FOR_MOVE, + waitForCollectionCallback: false, callback: (value) => { expect(value).toEqual(memberAccountIDs); }, @@ -985,6 +998,7 @@ describe('actions/Domain', () => { setDomainMembersSelectedForMove([]); await TestHelper.getOnyxData({ key: ONYXKEYS.RAM_ONLY_DOMAIN_MEMBERS_SELECTED_FOR_MOVE, + waitForCollectionCallback: false, callback: (value) => { expect(value).toEqual([]); }, @@ -996,6 +1010,7 @@ describe('actions/Domain', () => { clearDomainMembersSelectedForMove(); await TestHelper.getOnyxData({ key: ONYXKEYS.RAM_ONLY_DOMAIN_MEMBERS_SELECTED_FOR_MOVE, + waitForCollectionCallback: false, callback: (value) => { expect(value).toEqual([]); }, @@ -1179,6 +1194,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { const groupErrors = errors?.[SECURITY_GROUP_KEY as keyof typeof errors] as Record> | undefined; expect(groupErrors?.errors).toBeFalsy(); @@ -1205,6 +1221,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { const groupErrors = errors?.[SECURITY_GROUP_KEY as keyof typeof errors] as Record> | undefined; expect(groupErrors?.[settingsName]).toBeFalsy(); @@ -1432,6 +1449,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN}${domainAccountID}`, + waitForCollectionCallback: false, callback: (domain) => { expect((domain as Record)?.[SECURITY_GROUP_KEY]).toBeFalsy(); }, @@ -1439,6 +1457,7 @@ describe('actions/Domain', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.DOMAIN_ERRORS}${domainAccountID}`, + waitForCollectionCallback: false, callback: (errors) => { expect((errors as Record)?.[SECURITY_GROUP_KEY]).toBeFalsy(); }, diff --git a/tests/actions/IOU/CreateDraftTransactionTest.ts b/tests/actions/IOU/CreateDraftTransactionTest.ts index 25a271dfd369..9eaebb6ed4d5 100644 --- a/tests/actions/IOU/CreateDraftTransactionTest.ts +++ b/tests/actions/IOU/CreateDraftTransactionTest.ts @@ -175,6 +175,7 @@ describe('actions/IOU', () => { let updatedTransactionDrafts: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { updatedTransactionDrafts = val; }, @@ -227,6 +228,7 @@ describe('actions/IOU', () => { let transactionDrafts: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { transactionDrafts = val; }, @@ -268,6 +270,7 @@ describe('actions/IOU', () => { let transactionDrafts: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { transactionDrafts = val; }, @@ -304,6 +307,7 @@ describe('actions/IOU', () => { let transactionDrafts: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { transactionDrafts = val; }, diff --git a/tests/actions/IOU/PerDiemTest.ts b/tests/actions/IOU/PerDiemTest.ts index 08f53ab3f44d..3ca5ac43478e 100644 --- a/tests/actions/IOU/PerDiemTest.ts +++ b/tests/actions/IOU/PerDiemTest.ts @@ -787,6 +787,7 @@ describe('PerDiem', () => { const transactions = await new Promise>((resolve) => { const connection = Onyx.connectWithoutView({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { resolve(val ?? {}); Onyx.disconnect(connection); @@ -926,6 +927,7 @@ describe('PerDiem', () => { const transactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { Onyx.disconnect(connection); resolve(value); diff --git a/tests/actions/IOU/RequestMoneyTest.ts b/tests/actions/IOU/RequestMoneyTest.ts index 778a980f4816..2713734b633d 100644 --- a/tests/actions/IOU/RequestMoneyTest.ts +++ b/tests/actions/IOU/RequestMoneyTest.ts @@ -223,6 +223,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -277,6 +278,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); @@ -323,6 +325,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThread?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForTransactionThread) => { Onyx.disconnect(connection); @@ -345,6 +348,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); @@ -380,6 +384,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.SNAPSHOT, + waitForCollectionCallback: true, callback: (snapshotData) => { Onyx.disconnect(connection); @@ -396,6 +401,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); expect(Object.values(reportActionsForIOUReport ?? {}).length).toBe(2); @@ -412,6 +418,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, + waitForCollectionCallback: false, callback: (transaction) => { Onyx.disconnect(connection); expect(transaction?.pendingAction).toBeFalsy(); @@ -482,6 +489,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -510,6 +518,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (allIOUReportActions) => { Onyx.disconnect(connection); @@ -547,6 +556,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); @@ -585,6 +595,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); expect(Object.values(reportActionsForIOUReport ?? {}).length).toBe(2); @@ -712,6 +723,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -736,6 +748,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); @@ -772,6 +785,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); @@ -801,6 +815,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); expect(Object.values(reportActionsForIOUReport ?? {}).length).toBe(3); @@ -817,6 +832,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); for (const transaction of Object.values(allTransactions ?? {})) { @@ -875,6 +891,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -906,6 +923,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); @@ -952,6 +970,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); @@ -983,6 +1002,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForIOUReport) => { Onyx.disconnect(connection); expect(Object.values(reportActionsForIOUReport ?? {}).length).toBe(2); @@ -1000,6 +1020,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (reportActionsForTransactionThread) => { Onyx.disconnect(connection); expect(Object.values(reportActionsForTransactionThread ?? {}).length).toBe(3); @@ -1017,6 +1038,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, + waitForCollectionCallback: false, callback: (transaction) => { Onyx.disconnect(connection); expect(transaction?.pendingAction).toBe(CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD); @@ -1045,6 +1067,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${chatReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); iouAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -1063,6 +1086,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); iouAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -1081,6 +1105,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadReport?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); expect(reportActionsForReport).toMatchObject({}); @@ -1096,6 +1121,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, + waitForCollectionCallback: false, callback: (transaction) => { Onyx.disconnect(connection); expect(transaction).toBeFalsy(); @@ -1125,6 +1151,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); for (const report of Object.values(allReports ?? {})) { @@ -1142,6 +1169,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: false, callback: (allReportActions) => { Onyx.disconnect(connection); for (const reportAction of Object.values(allReportActions ?? {})) { @@ -1159,6 +1187,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); for (const transaction of Object.values(allTransactions ?? {})) { @@ -1270,6 +1299,7 @@ describe('actions/IOU', () => { let selfDMReportID: string | undefined; await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { const selfDMReportOnyx = Object.values(reports ?? {}).find((report) => report?.reportID === selfDMReport.reportID); selfDMReportID = selfDMReportOnyx?.reportID; @@ -1284,6 +1314,7 @@ describe('actions/IOU', () => { let linkedTrackedExpenseReportID: string | undefined; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { const transaction = Object.values(allTransactions ?? {}).find((t) => !isEmptyObject(t)); linkedTrackedExpenseReportID = transaction?.reportID; @@ -1861,6 +1892,7 @@ describe('actions/IOU', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -1883,6 +1915,7 @@ describe('actions/IOU', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -1902,6 +1935,7 @@ describe('actions/IOU', () => { const allTransactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); resolve(transactions); @@ -1956,6 +1990,7 @@ describe('actions/IOU', () => { const updatedTransactionThreadReport = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports?.[`${ONYXKEYS.COLLECTION.REPORT}${transactionThreadReport?.reportID}`]); @@ -2030,6 +2065,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -2116,6 +2152,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -2193,6 +2230,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -2265,6 +2303,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -2338,6 +2377,7 @@ describe('actions/IOU', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); diff --git a/tests/actions/IOUTest/DeleteMoneyRequestTest.ts b/tests/actions/IOUTest/DeleteMoneyRequestTest.ts index 12cf64ff7bdf..2430ee36b64f 100644 --- a/tests/actions/IOUTest/DeleteMoneyRequestTest.ts +++ b/tests/actions/IOUTest/DeleteMoneyRequestTest.ts @@ -198,6 +198,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -234,6 +235,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -254,6 +256,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { allTransactions = val; }, @@ -295,6 +298,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let reportActionsForReport = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (actionsForReport) => { Onyx.disconnect(connection); resolve(actionsForReport); @@ -312,6 +316,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const t = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction?.transactionID}`, + waitForCollectionCallback: false, callback: (transactionResult) => { Onyx.disconnect(connection); resolve(transactionResult); @@ -330,6 +335,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { reportActionsForReport = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (actionsForReport) => { Onyx.disconnect(connection); resolve(actionsForReport); @@ -346,6 +352,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const tr = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction?.transactionID}`, + waitForCollectionCallback: false, callback: (transactionResult) => { Onyx.disconnect(connection); resolve(transactionResult); @@ -381,6 +388,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let report = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (res) => { Onyx.disconnect(connection); resolve(res); @@ -398,6 +406,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { report = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (res) => { Onyx.disconnect(connection); resolve(res); @@ -463,6 +472,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -483,6 +493,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -539,6 +550,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -578,6 +590,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let report = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (reportData) => { Onyx.disconnect(connection); resolve(reportData); @@ -592,6 +605,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { report = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (reportData) => { Onyx.disconnect(connection); resolve(reportData); @@ -644,6 +658,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -700,6 +715,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); createIOUAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -731,6 +747,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const report = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (reportData) => { Onyx.disconnect(connection); resolve(reportData); @@ -818,6 +835,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -851,6 +869,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report?.reportID).toBeFalsy(); @@ -868,6 +887,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toBeFalsy(); @@ -916,6 +936,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -951,6 +972,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); createIOUAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -1044,6 +1066,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); createIOUAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -1063,6 +1086,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${iouReport?.reportID}`, + waitForCollectionCallback: false, callback: (reportActionsForReport) => { Onyx.disconnect(connection); createIOUAction = Object.values(reportActionsForReport ?? {}).find((reportAction): reportAction is ReportAction => @@ -1227,6 +1251,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -1263,6 +1288,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { let allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -1280,6 +1306,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -1449,6 +1476,7 @@ describe('actions/IOU/DeleteMoneyRequest', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); diff --git a/tests/actions/IOUTest/DuplicateTest.ts b/tests/actions/IOUTest/DuplicateTest.ts index 0bd603e13d93..bd2a277a0b97 100644 --- a/tests/actions/IOUTest/DuplicateTest.ts +++ b/tests/actions/IOUTest/DuplicateTest.ts @@ -592,6 +592,7 @@ describe('actions/Duplicate', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${transactionThreadReport1.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report?.reportID).toBeFalsy(); @@ -603,6 +604,7 @@ describe('actions/Duplicate', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${transactionThreadReport2.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report?.reportID).toBeFalsy(); @@ -1294,6 +1296,7 @@ describe('actions/Duplicate', () => { recentWaypoints = (await getOnyxValue(ONYXKEYS.NVP_RECENT_WAYPOINTS)) ?? []; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}`, + waitForCollectionCallback: true, callback: (value) => { targetPolicyTags = value?.[`${ONYXKEYS.COLLECTION.POLICY_TAGS}${mockPolicy.id}`] ?? {}; }, @@ -1345,6 +1348,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -1408,6 +1412,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { const transactions = Object.values(allTransactions ?? {}).filter((t) => !!t); expect(transactions).toHaveLength(1); @@ -1462,6 +1467,7 @@ describe('actions/Duplicate', () => { let duplicatedTransaction: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -1510,6 +1516,7 @@ describe('actions/Duplicate', () => { let duplicatedTransaction: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -1559,6 +1566,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -1610,6 +1618,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -1671,6 +1680,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { const transactions = Object.values(allTransactions ?? {}).filter((t) => !!t); expect(transactions).toHaveLength(1); @@ -1848,6 +1858,7 @@ describe('actions/Duplicate', () => { let duplicatedTransaction: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t && t.transactionID !== transactionID); }, @@ -2035,6 +2046,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -2087,6 +2099,7 @@ describe('actions/Duplicate', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t); }, @@ -2403,6 +2416,7 @@ describe('actions/Duplicate', () => { let duplicatedTransaction: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { duplicatedTransaction = Object.values(allTransactions ?? {}).find((t) => !!t && t.transactionID !== scanExpenseTx.transactionID); }, diff --git a/tests/actions/IOUTest/PayMoneyRequestTest.ts b/tests/actions/IOUTest/PayMoneyRequestTest.ts index 4916ddbbb3cc..4db333dd6bc2 100644 --- a/tests/actions/IOUTest/PayMoneyRequestTest.ts +++ b/tests/actions/IOUTest/PayMoneyRequestTest.ts @@ -171,6 +171,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -203,6 +204,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { Onyx.disconnect(connection); @@ -224,6 +226,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); expect(Object.values(allTransactions ?? {}).length).toBe(1); @@ -264,6 +267,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -287,6 +291,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { Onyx.disconnect(connection); @@ -310,6 +315,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -333,6 +339,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { Onyx.disconnect(connection); @@ -390,6 +397,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -436,6 +444,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); @@ -471,6 +480,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allActions) => { Onyx.disconnect(connection); expect(Object.values(allActions ?? {})).toEqual( @@ -500,6 +510,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); const updatedIOUReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); @@ -552,6 +563,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -598,6 +610,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); @@ -634,6 +647,7 @@ describe('actions/IOU/PayMoneyRequest', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allActions) => { Onyx.disconnect(connection); const erroredAction = Object.values(allActions ?? {}).find((action) => !isEmptyObject(action?.errors)); @@ -1370,6 +1384,7 @@ describe('actions/IOU/PayMoneyRequest', () => { .then(() => getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -1412,6 +1427,7 @@ describe('actions/IOU/PayMoneyRequest', () => { // And given an expense report has now been created which holds the IOU getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); }, @@ -1449,6 +1465,7 @@ describe('actions/IOU/PayMoneyRequest', () => { .then(() => getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { const chatReportData = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${chatReport?.reportID}`]; // Then the policy expense chat report has the iouReportID of the IOU expense report @@ -1494,6 +1511,7 @@ describe('actions/IOU/PayMoneyRequest', () => { // Get the policy expense chat report await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -1534,6 +1552,7 @@ describe('actions/IOU/PayMoneyRequest', () => { // And given an expense report has now been created which holds the IOU await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); }, @@ -1742,6 +1761,7 @@ describe('actions/IOU/PayMoneyRequest', () => { // Get the policy expense chat report await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -1782,6 +1802,7 @@ describe('actions/IOU/PayMoneyRequest', () => { // And given an expense report has now been created which holds the IOU await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.IOU); }, diff --git a/tests/actions/IOUTest/ReceiptTest.ts b/tests/actions/IOUTest/ReceiptTest.ts index 0d36aa1d7b5b..c6d9974a7bab 100644 --- a/tests/actions/IOUTest/ReceiptTest.ts +++ b/tests/actions/IOUTest/ReceiptTest.ts @@ -126,6 +126,7 @@ describe('actions/IOU/Receipt', () => { return new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); resolve(transactions[`${ONYXKEYS.COLLECTION.TRANSACTION}${id}`]); diff --git a/tests/actions/IOUTest/RejectMoneyRequestTest.ts b/tests/actions/IOUTest/RejectMoneyRequestTest.ts index 8cf82d468253..dd1bc9497b4c 100644 --- a/tests/actions/IOUTest/RejectMoneyRequestTest.ts +++ b/tests/actions/IOUTest/RejectMoneyRequestTest.ts @@ -281,6 +281,7 @@ describe('actions/IOU/RejectMoneyRequest', () => { let allReports: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { allReports = reports; }, diff --git a/tests/actions/IOUTest/ReportWorkflowTest.ts b/tests/actions/IOUTest/ReportWorkflowTest.ts index c25b61ac4dbc..fbca72f8bfe1 100644 --- a/tests/actions/IOUTest/ReportWorkflowTest.ts +++ b/tests/actions/IOUTest/ReportWorkflowTest.ts @@ -171,6 +171,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -217,6 +218,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -234,6 +236,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -271,6 +274,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -317,6 +321,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -396,6 +401,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -442,6 +448,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -488,6 +495,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (allPolicies) => { Onyx.disconnect(connection); policy = Object.values(allPolicies ?? {}).find((p): p is OnyxEntry => p?.name === "Carlos's Workspace"); @@ -502,6 +510,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -527,6 +536,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -567,6 +577,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -618,6 +629,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -664,6 +676,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -710,6 +723,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); @@ -756,6 +770,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (allPolicies) => { Onyx.disconnect(connection); policy = Object.values(allPolicies ?? {}).find((p): p is OnyxEntry => p?.name === "Carlos's Workspace"); @@ -770,6 +785,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -795,6 +811,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -833,6 +850,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); @@ -884,6 +902,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (allPolicies) => { Onyx.disconnect(connection); policy = Object.values(allPolicies ?? {}).find((p): p is OnyxEntry => p?.id === policyID); @@ -899,6 +918,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); chatReport = Object.values(allReports ?? {}).find( @@ -947,6 +967,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE && report?.policyID === policyID); @@ -964,6 +985,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE && report?.policyID === policyID); @@ -1000,6 +1022,7 @@ describe('actions/IOU/ReportWorkflow', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE && report?.policyID === policyID); @@ -1109,6 +1132,7 @@ describe('actions/IOU/ReportWorkflow', () => { let chatReport: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT && report?.policyID === policyID); }, @@ -1148,6 +1172,7 @@ describe('actions/IOU/ReportWorkflow', () => { let expenseReport: OnyxEntry; await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE && report?.policyID === policyID); }, diff --git a/tests/actions/IOUTest/SendInvoiceTest.ts b/tests/actions/IOUTest/SendInvoiceTest.ts index cbb817ea142b..8683ed262b2b 100644 --- a/tests/actions/IOUTest/SendInvoiceTest.ts +++ b/tests/actions/IOUTest/SendInvoiceTest.ts @@ -661,6 +661,7 @@ describe('actions/SendInvoice', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); const transactionValue = Object.values(allTransactions).at(0); diff --git a/tests/actions/IOUTest/SplitSelfDMTest.ts b/tests/actions/IOUTest/SplitSelfDMTest.ts index 235b9549e353..782b9b440837 100644 --- a/tests/actions/IOUTest/SplitSelfDMTest.ts +++ b/tests/actions/IOUTest/SplitSelfDMTest.ts @@ -155,18 +155,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -240,18 +243,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -338,24 +344,28 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.SNAPSHOT, + waitForCollectionCallback: true, callback: (value) => { allSnapshots = value as OnyxCollection; }, @@ -435,18 +445,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -506,6 +519,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { // Step 2: Re-fetch allTransactions (now contains the created children) await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, @@ -580,12 +594,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; for (const key of Object.keys(value ?? {})) { @@ -595,6 +611,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -653,6 +670,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow - selfDM', () => { let newIouReport: OnyxEntry | undefined; await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReportsAfter) => { // Check if any NEW IOU-type report was created after the split newIouReport = Object.entries(allReportsAfter ?? {}) diff --git a/tests/actions/IOUTest/SplitTest.ts b/tests/actions/IOUTest/SplitTest.ts index aa17b095119d..63e3bc68a30c 100644 --- a/tests/actions/IOUTest/SplitTest.ts +++ b/tests/actions/IOUTest/SplitTest.ts @@ -181,6 +181,7 @@ const getAllPolicyTags = async (): Promise> => { let allPolicyTags: OnyxCollection; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}`, + waitForCollectionCallback: true, callback: (value) => { allPolicyTags = value; }, @@ -190,6 +191,7 @@ const getAllPolicyTags = async (): Promise> => { const getParticipantsPolicyTags = async (participants: IOUParticipant[]) => { let participantsPolicyTags: Record = {}; await getOnyxData({ + waitForCollectionCallback: true, key: `${ONYXKEYS.COLLECTION.POLICY_TAGS}`, callback: (tags) => { participantsPolicyTags = participants.reduce>((acc, participant) => { @@ -419,6 +421,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); @@ -496,6 +499,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { Onyx.disconnect(connection); @@ -582,6 +586,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); @@ -647,6 +652,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.PERSONAL_DETAILS_LIST, + waitForCollectionCallback: false, callback: (allPersonalDetails) => { Onyx.disconnect(connection); expect(allPersonalDetails).toMatchObject({ @@ -668,6 +674,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { Onyx.disconnect(connection); for (const report of Object.values(allReports ?? {})) { @@ -688,6 +695,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { Onyx.disconnect(connection); for (const reportAction of Object.values(allReportActions ?? {})) { @@ -703,6 +711,7 @@ describe('split expense', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { Onyx.disconnect(connection); for (const transaction of Object.values(allTransactions ?? {})) { @@ -968,6 +977,7 @@ describe('split expense', () => { const optimisticTransaction = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); resolve(Object.values(transactions ?? {}).find((transaction) => transaction?.amount === -(transactionAmount / 2))); @@ -1230,18 +1240,21 @@ describe('split expense', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -1293,6 +1306,7 @@ describe('split expense', () => { const splitTransactions = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); const splits = Object.values(transactions ?? {}).filter((t) => t?.transactionID !== originalTransactionID && t?.comment?.originalTransactionID === originalTransactionID); @@ -1356,6 +1370,7 @@ describe('split expense', () => { const transactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1416,6 +1431,7 @@ describe('split expense', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -1429,6 +1445,7 @@ describe('split expense', () => { const transactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1483,6 +1500,7 @@ describe('split expense', () => { const allTransactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); resolve(transactions); @@ -1497,6 +1515,7 @@ describe('split expense', () => { const allReportActions = await new Promise>>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions as OnyxCollection>); @@ -1728,18 +1747,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -1846,18 +1868,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -1976,18 +2001,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2074,6 +2102,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -2110,12 +2139,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportActions) => { const iouActions = Object.values(allReportActions ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -2137,18 +2168,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2195,6 +2229,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { // Verify child transactions were created (prerequisite for isReverseSplitOperation in step 2) await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, @@ -2207,12 +2242,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { const differentReportID = rand64(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2293,6 +2330,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -2329,12 +2367,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportActions) => { const iouActions = Object.values(allReportActions ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -2356,18 +2396,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2414,6 +2457,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { // Verify child transactions were created await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, @@ -2426,6 +2470,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { const splitTx1 = allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${splitTransactionID1}`]; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${splitTx1?.reportID}`, + waitForCollectionCallback: false, callback: (allReportActions) => { const iouAction = Object.values(allReportActions ?? {}).find( (action): action is ReportAction => @@ -2465,18 +2510,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { // Step 3: Revert to 1 split (triggers isReverseSplitOperation) await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2535,6 +2583,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let newIOUAction: ReportAction | undefined; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${revertExpenseReportID}`, + waitForCollectionCallback: false, callback: (allReportActions) => { newIOUAction = Object.values(allReportActions ?? {}).findLast( (action): action is ReportAction => @@ -2632,18 +2681,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2765,18 +2817,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -2862,6 +2917,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -2896,12 +2952,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -2946,18 +3004,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -3035,6 +3096,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3069,12 +3131,14 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3119,18 +3183,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -3212,6 +3279,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3248,6 +3316,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, @@ -3255,6 +3324,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3305,18 +3375,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -3399,6 +3472,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3436,6 +3510,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, @@ -3444,6 +3519,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { // Get the original transaction ID and transaction thread report ID await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3469,6 +3545,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { let firstIOU: ReportAction | undefined; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3514,18 +3591,21 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -3584,6 +3664,7 @@ describe('updateSplitTransactionsFromSplitExpensesFlow', () => { await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3658,6 +3739,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3687,12 +3769,14 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3708,9 +3792,9 @@ describe('updateSplitTransactions', () => { let allTransactions: OnyxCollection; let allReports: OnyxCollection; let allReportNameValuePairs: OnyxCollection; - await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, callback: (v) => (allTransactions = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, callback: (v) => (allReports = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, callback: (v) => (allReportNameValuePairs = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, waitForCollectionCallback: true, callback: (v) => (allTransactions = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, waitForCollectionCallback: true, callback: (v) => (allReports = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, waitForCollectionCallback: true, callback: (v) => (allReportNameValuePairs = v)}); const reportID = originalTransaction?.reportID ?? String(CONST.DEFAULT_NUMBER_ID); const allPolicyTags = await getAllPolicyTags(); @@ -3788,6 +3872,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3818,12 +3903,14 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3839,9 +3926,9 @@ describe('updateSplitTransactions', () => { let allTransactions: OnyxCollection; let allReports: OnyxCollection; let allReportNameValuePairs: OnyxCollection; - await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, callback: (v) => (allTransactions = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, callback: (v) => (allReports = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, callback: (v) => (allReportNameValuePairs = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, waitForCollectionCallback: true, callback: (v) => (allTransactions = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, waitForCollectionCallback: true, callback: (v) => (allReports = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, waitForCollectionCallback: true, callback: (v) => (allReportNameValuePairs = v)}); const reportID = originalTransaction?.reportID ?? String(CONST.DEFAULT_NUMBER_ID); const allPolicyTags = await getAllPolicyTags(); @@ -3920,6 +4007,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -3949,12 +4037,14 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -3968,9 +4058,9 @@ describe('updateSplitTransactions', () => { let allTransactions: OnyxCollection; let allReports: OnyxCollection; let allReportNameValuePairs: OnyxCollection; - await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, callback: (v) => (allTransactions = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, callback: (v) => (allReports = v)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, callback: (v) => (allReportNameValuePairs = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, waitForCollectionCallback: true, callback: (v) => (allTransactions = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, waitForCollectionCallback: true, callback: (v) => (allReports = v)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, waitForCollectionCallback: true, callback: (v) => (allReportNameValuePairs = v)}); const reportID = originalTransaction?.reportID ?? String(CONST.DEFAULT_NUMBER_ID); const allPolicyTags = await getAllPolicyTags(); @@ -4027,11 +4117,11 @@ describe('updateSplitTransactions', () => { let allReportActions: OnyxCollection; let allReportNameValuePairs: OnyxCollection; let allPolicyTagsList: OnyxCollection; - await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, callback: (value) => (allTransactions = value)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, callback: (value) => (allReports = value)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, callback: (value) => (allReportNameValuePairs = value)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, callback: (value) => (allReportActions = value)}); - await getOnyxData({key: ONYXKEYS.COLLECTION.POLICY_TAGS, callback: (value) => (allPolicyTagsList = value)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.TRANSACTION, waitForCollectionCallback: true, callback: (value) => (allTransactions = value)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT, waitForCollectionCallback: true, callback: (value) => (allReports = value)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, waitForCollectionCallback: true, callback: (value) => (allReportNameValuePairs = value)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, waitForCollectionCallback: true, callback: (value) => (allReportActions = value)}); + await getOnyxData({key: ONYXKEYS.COLLECTION.POLICY_TAGS, waitForCollectionCallback: true, callback: (value) => (allPolicyTagsList = value)}); return {allTransactions, allReports, allReportNameValuePairs, allReportActions, allPolicyTagsList}; }; @@ -4062,6 +4152,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -4091,6 +4182,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE && report?.chatReportID === chatReport?.reportID); }, @@ -4105,6 +4197,7 @@ describe('updateSplitTransactions', () => { await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportActions) => { const iouActions = Object.values(allReportActions ?? {}).filter((reportAction) => isMoneyRequestAction(reportAction)); firstIOU = iouActions.at(0); @@ -4115,6 +4208,7 @@ describe('updateSplitTransactions', () => { if (!originalTransactionID) { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { for (const reportActions of Object.values(allReportActions ?? {})) { const iouAction = Object.values(reportActions ?? {}).find((reportAction): reportAction is ReportAction => @@ -4133,6 +4227,7 @@ describe('updateSplitTransactions', () => { if (!originalTransactionID && expenseReport?.reportID) { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (allTransactions) => { const transaction = Object.values(allTransactions ?? {}).find((item) => item?.reportID === expenseReport?.reportID && !item?.comment?.originalTransactionID); originalTransactionID = transaction?.transactionID; @@ -7538,6 +7633,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7558,6 +7654,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7589,6 +7686,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7607,6 +7705,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7644,6 +7743,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7669,6 +7769,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7687,6 +7788,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7708,6 +7810,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7729,6 +7832,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7752,6 +7856,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7787,6 +7892,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7820,6 +7926,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7844,6 +7951,7 @@ describe('createDistanceRequest', () => { let allTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { allTransactions = transactions; }, @@ -7865,7 +7973,7 @@ describe('createDistanceRequest', () => { const allTransactions = await getOnyxValue(ONYXKEYS.COLLECTION.TRANSACTION); expect(Object.keys(allReports ?? {}).length).toBeGreaterThan(initialReportsCount); expect(Object.keys(allTransactions ?? {}).length).toBeGreaterThanOrEqual(1); - const createdTransaction = Object.values(allTransactions ?? {}).at(0); + const createdTransaction = Object.values(allTransactions ?? {}).at(0) as Transaction | undefined; expect(createdTransaction).toBeTruthy(); }); }); diff --git a/tests/actions/IOUTest/TrackExpenseTest.ts b/tests/actions/IOUTest/TrackExpenseTest.ts index 9a7458856e99..4e1a16aee44a 100644 --- a/tests/actions/IOUTest/TrackExpenseTest.ts +++ b/tests/actions/IOUTest/TrackExpenseTest.ts @@ -344,6 +344,7 @@ describe('actions/IOU/TrackExpense', () => { const transaction = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); const trackedExpenseTransaction = Object.values(transactions ?? {}).at(0); @@ -360,6 +361,7 @@ describe('actions/IOU/TrackExpense', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (reportActions) => { Onyx.disconnect(connection); resolve(reportActions); @@ -400,6 +402,7 @@ describe('actions/IOU/TrackExpense', () => { let allTransactionsDraft: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { allTransactionsDraft = val; }, @@ -450,6 +453,7 @@ describe('actions/IOU/TrackExpense', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); const categorizedTransaction = transactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transaction?.transactionID}`]; @@ -538,6 +542,7 @@ describe('actions/IOU/TrackExpense', () => { const selfDMReportActionsOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -592,6 +597,7 @@ describe('actions/IOU/TrackExpense', () => { const policyExpenseChatOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${policyExpenseChat.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -601,6 +607,7 @@ describe('actions/IOU/TrackExpense', () => { const policyOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policy.id}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -673,6 +680,7 @@ describe('actions/IOU/TrackExpense', () => { const selfDMReportActionsOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -727,6 +735,7 @@ describe('actions/IOU/TrackExpense', () => { const policyExpenseChatOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${policyExpenseChat.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -736,6 +745,7 @@ describe('actions/IOU/TrackExpense', () => { const policyOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policy.id}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -812,6 +822,7 @@ describe('actions/IOU/TrackExpense', () => { const selfDMReportActionsOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -866,6 +877,7 @@ describe('actions/IOU/TrackExpense', () => { const policyOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policy.id}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -950,6 +962,7 @@ describe('actions/IOU/TrackExpense', () => { const selfDMReportActionsOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1004,6 +1017,7 @@ describe('actions/IOU/TrackExpense', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -1107,6 +1121,7 @@ describe('actions/IOU/TrackExpense', () => { const selfDMReportActionsOnyx = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1162,6 +1177,7 @@ describe('actions/IOU/TrackExpense', () => { const accountantChatNvpAfter = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${accountantExpenseChatID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1171,6 +1187,7 @@ describe('actions/IOU/TrackExpense', () => { const expenseReportNvpAfter = await new Promise>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${archivedExpenseReportID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value); @@ -1240,6 +1257,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1292,6 +1310,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1319,6 +1338,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1366,6 +1386,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1396,6 +1417,7 @@ describe('actions/IOU/TrackExpense', () => { let transactionDrafts: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION_DRAFT, + waitForCollectionCallback: true, callback: (val) => { transactionDrafts = val; }, @@ -1443,6 +1465,7 @@ describe('actions/IOU/TrackExpense', () => { let finalTransactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { finalTransactions = val; }, @@ -1472,6 +1495,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1551,6 +1575,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1576,6 +1601,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1605,6 +1631,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1625,6 +1652,7 @@ describe('actions/IOU/TrackExpense', () => { const reports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (val) => { Onyx.disconnect(connection); resolve(val); @@ -1647,6 +1675,7 @@ describe('actions/IOU/TrackExpense', () => { const reports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (val) => { Onyx.disconnect(connection); resolve(val); @@ -1669,6 +1698,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1695,6 +1725,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1735,6 +1766,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1774,6 +1806,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1802,6 +1835,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1829,6 +1863,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1860,6 +1895,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -1893,6 +1929,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -2234,6 +2271,7 @@ describe('actions/IOU/TrackExpense', () => { let transactions: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (val) => { transactions = val; }, @@ -2335,6 +2373,7 @@ describe('actions/IOU/TrackExpense', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -2363,6 +2402,7 @@ describe('actions/IOU/TrackExpense', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -2382,6 +2422,7 @@ describe('actions/IOU/TrackExpense', () => { const allTransactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); resolve(transactions); @@ -2474,6 +2515,7 @@ describe('actions/IOU/TrackExpense', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -2635,6 +2677,7 @@ describe('actions/IOU/TrackExpense', () => { const allReports = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -2645,6 +2688,7 @@ describe('actions/IOU/TrackExpense', () => { const allReportActions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -2655,6 +2699,7 @@ describe('actions/IOU/TrackExpense', () => { const allTransactions = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); diff --git a/tests/actions/IOUTest/UpdateMoneyRequestTest.ts b/tests/actions/IOUTest/UpdateMoneyRequestTest.ts index b787eea190f5..297b29fb1a42 100644 --- a/tests/actions/IOUTest/UpdateMoneyRequestTest.ts +++ b/tests/actions/IOUTest/UpdateMoneyRequestTest.ts @@ -444,6 +444,7 @@ describe('actions/IOU/UpdateMoneyRequest', () => { const updatedTransaction = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); const newTransaction = transactions[`${ONYXKEYS.COLLECTION.TRANSACTION}${fakeTransaction.transactionID}`]; @@ -514,6 +515,7 @@ describe('actions/IOU/UpdateMoneyRequest', () => { const updatedTransaction = await new Promise>((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { Onyx.disconnect(connection); const newTransaction = transactions[`${ONYXKEYS.COLLECTION.TRANSACTION}${fakeTransaction.transactionID}`]; diff --git a/tests/actions/MergeTransactionTest.ts b/tests/actions/MergeTransactionTest.ts index d98e2a07358f..49e53031354b 100644 --- a/tests/actions/MergeTransactionTest.ts +++ b/tests/actions/MergeTransactionTest.ts @@ -1235,6 +1235,7 @@ describe('mergeTransactionRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report?.reportID).toBeFalsy(); @@ -1257,6 +1258,7 @@ describe('mergeTransactionRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toBeFalsy(); @@ -1376,6 +1378,7 @@ describe('mergeTransactionRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report?.reportID).toBeFalsy(); @@ -1392,6 +1395,7 @@ describe('mergeTransactionRequest', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}${thread.reportID}`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toBeFalsy(); diff --git a/tests/actions/PolicyCategoryTest.ts b/tests/actions/PolicyCategoryTest.ts index 74b510be5a73..2681806cc3a1 100644 --- a/tests/actions/PolicyCategoryTest.ts +++ b/tests/actions/PolicyCategoryTest.ts @@ -61,6 +61,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); // Check if policy requiresCategory was updated with correct values @@ -76,6 +77,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); // Check if the policy pendingFields was cleared @@ -108,6 +110,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); const newCategory = policyCategories?.[newCategoryName]; @@ -124,6 +127,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -156,6 +160,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -173,6 +178,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -215,6 +221,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -231,6 +238,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -260,6 +268,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); @@ -273,6 +282,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); expect(policyCategories?.[categoryNameToDelete]).toBeFalsy(); @@ -312,6 +322,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.areCategoriesEnabled).toBe(CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE); @@ -322,6 +333,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); expect(Object.values(policyCategories ?? {}).every((category) => category.enabled === false)).toBeTruthy(); @@ -335,6 +347,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.areCategoriesEnabled).toBe(false); @@ -373,6 +386,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.areCategoriesEnabled).toBe(CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE); @@ -383,6 +397,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); expect(Object.values(policyCategories ?? {}).every((category) => category.enabled === true)).toBeTruthy(); @@ -396,6 +411,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.areCategoriesEnabled).toBe(true); @@ -734,6 +750,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); const category = policyCategories?.[categoryName]; @@ -755,6 +772,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); const category = policyCategories?.[categoryName]; @@ -807,6 +825,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); const category = policyCategories?.[categoryName]; @@ -828,6 +847,7 @@ describe('actions/PolicyCategory', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policyCategories) => { Onyx.disconnect(connection); const category = policyCategories?.[categoryName]; diff --git a/tests/actions/PolicyMemberTest.ts b/tests/actions/PolicyMemberTest.ts index 7656666636ac..73e93352fe71 100644 --- a/tests/actions/PolicyMemberTest.ts +++ b/tests/actions/PolicyMemberTest.ts @@ -62,6 +62,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${fakeReport.reportID}`, + waitForCollectionCallback: false, callback: (reportActions) => { Onyx.disconnect(connection); @@ -80,6 +81,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${fakeReport.reportID}`, + waitForCollectionCallback: false, callback: (reportActions) => { Onyx.disconnect(connection); @@ -119,6 +121,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const employee = policy?.employeeList?.[fakeUser2?.login ?? '']; @@ -145,6 +148,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const employee = policy?.employeeList?.[fakeUser2?.login ?? '']; @@ -160,6 +164,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); resolve(); @@ -195,6 +200,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.errorFields).toBeFalsy(); @@ -210,6 +216,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.isLoading).toBeFalsy(); @@ -244,6 +251,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.errorFields).toBeFalsy(); @@ -259,6 +267,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.isLoading).toBeFalsy(); @@ -290,6 +299,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.isLoading).toBeFalsy(); @@ -316,6 +326,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.errorFields).toBeFalsy(); @@ -340,6 +351,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.isLoading).toBeFalsy(); @@ -376,6 +388,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policyResult) => { Onyx.disconnect(connection); const newEmployee = policyResult?.employeeList?.[newUserEmail]; @@ -488,6 +501,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policyResult) => { Onyx.disconnect(connection); const newEmployee = policyResult?.employeeList?.[newUserEmail]; @@ -520,6 +534,7 @@ describe('actions/PolicyMember', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policyResult) => { Onyx.disconnect(connection); const newEmployee = policyResult?.employeeList?.[newUserEmail]; @@ -1244,6 +1259,7 @@ describe('actions/PolicyMember', () => { const draft = await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as typeof invitedEmailsToAccountIDs | null | undefined); @@ -1285,6 +1301,7 @@ describe('actions/PolicyMember', () => { const draft = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); @@ -1321,6 +1338,7 @@ describe('actions/PolicyMember', () => { const draft = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); @@ -1353,6 +1371,7 @@ describe('actions/PolicyMember', () => { const savedDraft1 = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID1}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); @@ -1363,6 +1382,7 @@ describe('actions/PolicyMember', () => { const savedDraft2 = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID2}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); @@ -1395,6 +1415,7 @@ describe('actions/PolicyMember', () => { const draft = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); @@ -1426,6 +1447,7 @@ describe('actions/PolicyMember', () => { const draft = await new Promise | null | undefined>((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.WORKSPACE_INVITE_MEMBERS_DRAFT}${policyID}`, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); resolve(value as Record | null | undefined); diff --git a/tests/actions/PolicyProfileTest.ts b/tests/actions/PolicyProfileTest.ts index f9553b0cd783..9d86537003f3 100644 --- a/tests/actions/PolicyProfileTest.ts +++ b/tests/actions/PolicyProfileTest.ts @@ -41,6 +41,7 @@ describe('actions/PolicyProfile', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); @@ -56,6 +57,7 @@ describe('actions/PolicyProfile', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.description).toBeFalsy(); diff --git a/tests/actions/PolicyRulesTest.ts b/tests/actions/PolicyRulesTest.ts index 15ea84cd7b9c..5b28844e1a99 100644 --- a/tests/actions/PolicyRulesTest.ts +++ b/tests/actions/PolicyRulesTest.ts @@ -22,6 +22,7 @@ function getPolicy(policyID: string): Promise { return new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); resolve(policy); diff --git a/tests/actions/PolicyTagTest.ts b/tests/actions/PolicyTagTest.ts index 1d0d67c1d4e1..959e879f5081 100644 --- a/tests/actions/PolicyTagTest.ts +++ b/tests/actions/PolicyTagTest.ts @@ -71,6 +71,7 @@ describe('actions/Policy', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); @@ -90,6 +91,7 @@ describe('actions/Policy', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.requiresTag).toBeFalsy(); @@ -117,6 +119,7 @@ describe('actions/Policy', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); @@ -136,6 +139,7 @@ describe('actions/Policy', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.requiresTag).toBeFalsy(); @@ -167,6 +171,7 @@ describe('actions/Policy', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.requiresTag).toBeFalsy(); diff --git a/tests/actions/PolicyTaxTest.ts b/tests/actions/PolicyTaxTest.ts index bb2754c2a952..f125951f72fa 100644 --- a/tests/actions/PolicyTaxTest.ts +++ b/tests/actions/PolicyTaxTest.ts @@ -63,6 +63,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.name).toBe(customTaxName); @@ -80,6 +81,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.pendingFields?.name).toBeFalsy(); @@ -102,6 +104,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.name).toBe(customTaxName); @@ -122,6 +125,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.name).toBe(originalCustomTaxName); @@ -147,6 +151,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.defaultExternalID).toBe(taxCode); @@ -164,6 +169,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.pendingFields?.defaultExternalID).toBeFalsy(); @@ -186,6 +192,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.defaultExternalID).toBe(taxCode); @@ -206,6 +213,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.defaultExternalID).toBe(originalDefaultExternalID); @@ -230,6 +238,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.foreignTaxDefault).toBe(taxCode); @@ -247,6 +256,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); // Check if the policy pendingFields was cleared @@ -270,6 +280,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.taxRates?.foreignTaxDefault).toBe(taxCode); @@ -291,6 +302,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); // Check if the policy pendingFields was cleared @@ -320,6 +332,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const createdTax = policy?.taxRates?.taxes?.[newTaxRate.code ?? '']; @@ -339,6 +352,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const createdTax = policy?.taxRates?.taxes?.[newTaxRate.code ?? '']; @@ -366,6 +380,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const createdTax = policy?.taxRates?.taxes?.[newTaxRate.code ?? '']; @@ -388,6 +403,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const createdTax = policy?.taxRates?.taxes?.[newTaxRate.code ?? '']; @@ -410,6 +426,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const disabledTax = policy?.taxRates?.taxes?.[disableTaxID]; @@ -429,6 +446,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const disabledTax = policy?.taxRates?.taxes?.[disableTaxID]; @@ -452,6 +470,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const disabledTax = policy?.taxRates?.taxes?.[disableTaxID]; @@ -474,6 +493,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const disabledTax = policy?.taxRates?.taxes?.[disableTaxID]; @@ -501,6 +521,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -520,6 +541,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -545,6 +567,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -567,6 +590,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -594,6 +618,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -613,6 +638,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -639,6 +665,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -661,6 +688,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const updatedTax = policy?.taxRates?.taxes?.[taxID]; @@ -687,6 +715,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -707,6 +736,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -739,6 +769,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicyWithForeignTaxDefault.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -759,6 +790,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicyWithForeignTaxDefault.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -784,6 +816,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -807,6 +840,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; @@ -846,6 +880,7 @@ describe('actions/PolicyTax', () => { new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); const taxRates = policy?.taxRates; diff --git a/tests/actions/PolicyTest.ts b/tests/actions/PolicyTest.ts index 5073e23d6d10..48ebe6d43851 100644 --- a/tests/actions/PolicyTest.ts +++ b/tests/actions/PolicyTest.ts @@ -156,6 +156,7 @@ describe('actions/Policy', () => { let allReports: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -189,6 +190,7 @@ describe('actions/Policy', () => { let reportActions: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -246,6 +248,7 @@ describe('actions/Policy', () => { policy = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (workspace) => { Onyx.disconnect(connection); resolve(workspace); @@ -259,6 +262,7 @@ describe('actions/Policy', () => { allReports = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -275,6 +279,7 @@ describe('actions/Policy', () => { reportActions = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -368,6 +373,7 @@ describe('actions/Policy', () => { let allReports: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -401,6 +407,7 @@ describe('actions/Policy', () => { let reportActions: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -444,6 +451,7 @@ describe('actions/Policy', () => { policy = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.POLICY, + waitForCollectionCallback: true, callback: (workspace) => { Onyx.disconnect(connection); resolve(workspace); @@ -457,6 +465,7 @@ describe('actions/Policy', () => { allReports = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -473,6 +482,7 @@ describe('actions/Policy', () => { reportActions = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -659,6 +669,7 @@ describe('actions/Policy', () => { const allReports: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -761,6 +772,7 @@ describe('actions/Policy', () => { const allReports: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); resolve(reports); @@ -774,6 +786,7 @@ describe('actions/Policy', () => { const reportActions: OnyxCollection = await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (actions) => { Onyx.disconnect(connection); resolve(actions); @@ -1051,6 +1064,7 @@ describe('actions/Policy', () => { let onboarding: OnyxEntry; await TestHelper.getOnyxData({ key: ONYXKEYS.NVP_ONBOARDING, + waitForCollectionCallback: false, callback: (val) => { onboarding = val; }, @@ -1080,6 +1094,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then the autoReportingFrequency should be set to manually expect(policy?.autoReportingFrequency).toBe(CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE); @@ -1110,6 +1125,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then the autoReportingFrequency should be set to manually expect(policy?.autoReportingFrequency).toBe(CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE); @@ -1141,6 +1157,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then the workflows feature is enabled expect(policy?.areWorkflowsEnabled).toBeTruthy(); @@ -1170,6 +1187,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then the workflows feature is enabled expect(policy?.areWorkflowsEnabled).toBeTruthy(); @@ -1199,6 +1217,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then workflows is enabled expect(policy?.areWorkflowsEnabled).toBeTruthy(); @@ -1228,6 +1247,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then workflows are not enabled expect(policy?.areWorkflowsEnabled).toBeFalsy(); @@ -1257,6 +1277,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { // Then workflows are not enabled expect(policy?.areWorkflowsEnabled).toBeFalsy(); @@ -1286,6 +1307,7 @@ describe('actions/Policy', () => { await TestHelper.getOnyxData({ key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`, + waitForCollectionCallback: false, callback: (policy) => { expect(policy?.type).toBe(CONST.POLICY.TYPE.SUBMIT); expect(policy?.role).toBe(CONST.POLICY.ROLE.EDITOR); @@ -4647,6 +4669,7 @@ describe('actions/Policy', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.maxExpenseAmountNoItemizedReceipt).toBe(expectedBackendAmount); @@ -4663,6 +4686,7 @@ describe('actions/Policy', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.pendingFields?.maxExpenseAmountNoItemizedReceipt).toBeFalsy(); @@ -4686,6 +4710,7 @@ describe('actions/Policy', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.POLICY}${fakePolicy.id}`, + waitForCollectionCallback: false, callback: (policy) => { Onyx.disconnect(connection); expect(policy?.maxExpenseAmountNoItemizedReceipt).toBe(CONST.DISABLED_MAX_EXPENSE_VALUE); diff --git a/tests/actions/QueuedOnyxUpdatesTest.ts b/tests/actions/QueuedOnyxUpdatesTest.ts index e5acc45ba82e..5c7bb18ebc05 100644 --- a/tests/actions/QueuedOnyxUpdatesTest.ts +++ b/tests/actions/QueuedOnyxUpdatesTest.ts @@ -73,6 +73,7 @@ async function testOnyxKeyValue(key: OnyxKey): Promise { return new Promise((resolve) => { const connection = Onyx.connect({ key, + waitForCollectionCallback: false, callback: (value) => { Onyx.disconnect(connection); @@ -114,6 +115,7 @@ describe('actions/QueuedOnyxUpdates', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}2175919089355165`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toBeUndefined(); @@ -126,6 +128,7 @@ describe('actions/QueuedOnyxUpdates', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}2175919089355165`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toBeUndefined(); @@ -157,6 +160,7 @@ describe('actions/QueuedOnyxUpdates', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT}2175919089355165`, + waitForCollectionCallback: false, callback: (report) => { Onyx.disconnect(connection); expect(report).toEqual(getOnyxUpdateValue(`${ONYXKEYS.COLLECTION.REPORT}2175919089355165`)); @@ -169,6 +173,7 @@ describe('actions/QueuedOnyxUpdates', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}2175919089355165`, + waitForCollectionCallback: false, callback: (reportActions) => { Onyx.disconnect(connection); expect(reportActions).toEqual(getOnyxUpdateValue(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}2175919089355165`)); diff --git a/tests/actions/ReportTest.ts b/tests/actions/ReportTest.ts index 6fe21e0a4b31..cc1cde22432d 100644 --- a/tests/actions/ReportTest.ts +++ b/tests/actions/ReportTest.ts @@ -960,11 +960,11 @@ describe('actions/Report', () => { key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${REPORT_ID}`, callback: (val) => (reportActions = val ?? {}), }); - let reportActionsReactions: NonNullable> = {}; + const reportActionsReactions: OnyxCollection = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, - callback: (snapshot) => { - reportActionsReactions = snapshot ?? {}; + callback: (val, key) => { + reportActionsReactions[key] = val ?? {}; }, }); let reportAction: OnyxTypes.ReportAction | undefined; @@ -1098,11 +1098,11 @@ describe('actions/Report', () => { key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${REPORT_ID}`, callback: (val) => (reportActions = val ?? {}), }); - let reportActionsReactions: NonNullable> = {}; + const reportActionsReactions: OnyxCollection = {}; Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, - callback: (snapshot) => { - reportActionsReactions = snapshot ?? {}; + callback: (val, key) => { + reportActionsReactions[key] = val ?? {}; }, }); @@ -2646,6 +2646,7 @@ describe('actions/Report', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); const createdReport = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportID}`]; @@ -2670,6 +2671,7 @@ describe('actions/Report', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); const parentPolicyExpenseChat = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${parentReport?.reportID}`]; @@ -2740,6 +2742,7 @@ describe('actions/Report', () => { await new Promise((resolve) => { const connection = Onyx.connect({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (reports) => { Onyx.disconnect(connection); const parentPolicyExpenseChat = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${parentReport?.reportID}`]; diff --git a/tests/actions/TransactionTest.ts b/tests/actions/TransactionTest.ts index c429b3caa312..e786764f0022 100644 --- a/tests/actions/TransactionTest.ts +++ b/tests/actions/TransactionTest.ts @@ -241,6 +241,7 @@ describe('actions/Transaction', () => { }); await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { transaction = Object.values(transactions ?? {}).find((t) => !!t); allTransactions = transactions; @@ -249,6 +250,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((r) => r?.type === CONST.REPORT.TYPE.EXPENSE); }, @@ -259,6 +261,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { iouReportActionOnSelfDMReport = Object.values(allReportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`] ?? {}).find( (r) => r?.actionName === CONST.REPORT.ACTIONS.TYPE.IOU, @@ -307,6 +310,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (transactions) => { updatedTransaction = Object.values(transactions ?? {}).find((t) => t?.transactionID === transaction?.transactionID); }, @@ -314,6 +318,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_ACTIONS, + waitForCollectionCallback: true, callback: (allReportActions) => { updatedIOUReportActionOnSelfDMReport = Object.values(allReportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${selfDMReport.reportID}`] ?? {}).find( (r) => r?.actionName === CONST.REPORT.ACTIONS.TYPE.IOU, @@ -326,6 +331,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { updatedExpenseReport = Object.values(allReports ?? {}).find((r) => r?.reportID === expenseReport?.reportID); }, @@ -458,6 +464,7 @@ describe('actions/Transaction', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -493,12 +500,14 @@ describe('actions/Transaction', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -543,18 +552,21 @@ describe('actions/Transaction', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -631,6 +643,7 @@ describe('actions/Transaction', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -666,12 +679,14 @@ describe('actions/Transaction', () => { await waitForBatchedUpdates(); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, }); await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -716,18 +731,21 @@ describe('actions/Transaction', () => { let allReportNameValuePairs: OnyxCollection; await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -808,6 +826,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -845,6 +864,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, @@ -852,6 +872,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -902,18 +923,21 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -995,6 +1019,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { chatReport = Object.values(allReports ?? {}).find((report) => report?.chatType === CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT); }, @@ -1033,6 +1058,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (allReports) => { expenseReport = Object.values(allReports ?? {}).find((report) => report?.type === CONST.REPORT.TYPE.EXPENSE); }, @@ -1041,6 +1067,7 @@ describe('actions/Transaction', () => { // Get the original transaction ID and transaction thread report ID await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -1066,6 +1093,7 @@ describe('actions/Transaction', () => { let firstIOU: ReportAction | undefined; await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), @@ -1111,18 +1139,21 @@ describe('actions/Transaction', () => { await getOnyxData({ key: ONYXKEYS.COLLECTION.TRANSACTION, + waitForCollectionCallback: true, callback: (value) => { allTransactions = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT, + waitForCollectionCallback: true, callback: (value) => { allReports = value; }, }); await getOnyxData({ key: ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, + waitForCollectionCallback: true, callback: (value) => { allReportNameValuePairs = value; }, @@ -1180,6 +1211,7 @@ describe('actions/Transaction', () => { await getOnyxData({ key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${expenseReport?.reportID}`, + waitForCollectionCallback: false, callback: (allReportsAction) => { const iouActions = Object.values(allReportsAction ?? {}).filter((reportAction): reportAction is ReportAction => isMoneyRequestAction(reportAction), diff --git a/tests/unit/DistanceRateTest.ts b/tests/unit/DistanceRateTest.ts index 816ff4e43e49..779344f2bbc3 100644 --- a/tests/unit/DistanceRateTest.ts +++ b/tests/unit/DistanceRateTest.ts @@ -89,6 +89,7 @@ describe('DistanceRate', () => { Onyx.connect({ key: ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, callback: resolve, + waitForCollectionCallback: true, }); }); diff --git a/tests/unit/OptionsListUtilsTest.tsx b/tests/unit/OptionsListUtilsTest.tsx index 034a62227c33..a2baea1f76ca 100644 --- a/tests/unit/OptionsListUtilsTest.tsx +++ b/tests/unit/OptionsListUtilsTest.tsx @@ -6613,6 +6613,7 @@ describe('OptionsListUtils', () => { let reportNameValuePair: OnyxEntry; Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${participant.reportID}`, + waitForCollectionCallback: false, callback: (value) => { reportNameValuePair = value; }, @@ -6656,6 +6657,7 @@ describe('OptionsListUtils', () => { let reportNameValuePair: OnyxEntry; Onyx.connect({ key: `${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${participant.reportID}`, + waitForCollectionCallback: false, callback: (value) => { reportNameValuePair = value; }, diff --git a/tests/utils/getOnyxValue.ts b/tests/utils/getOnyxValue.ts index 69cf47f289e7..b322ce12944a 100644 --- a/tests/utils/getOnyxValue.ts +++ b/tests/utils/getOnyxValue.ts @@ -1,8 +1,8 @@ -import type {OnyxKey, OnyxValue} from 'react-native-onyx'; +import type {KeyValueMapping, OnyxEntry, OnyxKey} from 'react-native-onyx'; import Onyx from 'react-native-onyx'; -export default function getOnyxValue(key: TKey): Promise> { +export default function getOnyxValue(key: TKey): Promise> { return new Promise((resolve) => { Onyx.connect({ key,