diff --git a/src/hooks/useOnyx.ts b/src/hooks/useOnyx.ts index db42d64b636d..7bc0e5042c75 100644 --- a/src/hooks/useOnyx.ts +++ b/src/hooks/useOnyx.ts @@ -1,3 +1,5 @@ +import isEmpty from 'lodash/isEmpty'; +import isPlainObject from 'lodash/isPlainObject'; import {use, useMemo} from 'react'; import type {DependencyList} from 'react'; // eslint-disable-next-line no-restricted-imports @@ -58,35 +60,42 @@ const useOnyx: OriginalUseOnyx = > | undefined; - const {selector: selectorProp, ...optionsWithoutSelector} = useOnyxOptions ?? {}; + const {selector, ...optionsWithoutSelector} = useOnyxOptions ?? {}; - // Determine if we should use snapshot data based on search state and key - const shouldUseSnapshot = isOnSearch && !!currentSearchHash && isSnapshotCompatibleKey; + // Original Onyx + const originalOnyxOptions: UseOnyxOptions> = {...optionsWithoutSelector, selector, allowDynamicKey: true}; + const originalResult = originalUseOnyx(key, originalOnyxOptions, dependencies); - // Create selector function that handles both regular and snapshot data - const selector = useMemo(() => { - if (!selectorProp || !shouldUseSnapshot) { - return selectorProp; + // Snapshot Onyx + const shouldUseSnapshot = isOnSearch && !!currentSearchHash && isSnapshotCompatibleKey; + const snapshotSelector = useMemo(() => { + if (!selector) { + return (data: OnyxValue | undefined) => getKeyData(data as SearchResults, key) as OnyxValue; } - return (data: OnyxValue | undefined) => selectorProp(getKeyData(data as SearchResults, key)); - }, [selectorProp, shouldUseSnapshot, key]); + return (data: OnyxValue | undefined) => selector(getKeyData(data as SearchResults, key)); + }, [selector, key]); + const snapshotOnyxOptions: UseOnyxOptions> = {...optionsWithoutSelector, selector: snapshotSelector, allowDynamicKey: true}; + const snapshotKey = `${ONYXKEYS.COLLECTION.SNAPSHOT}${currentSearchHash}` as OnyxKey; + const snapshotResult = shouldUseSnapshot ? originalUseOnyx(snapshotKey, snapshotOnyxOptions, dependencies) : [undefined, {status: 'loaded'}]; - const onyxOptions: UseOnyxOptions> = {...optionsWithoutSelector, selector, allowDynamicKey: true}; - const snapshotKey = shouldUseSnapshot ? (`${ONYXKEYS.COLLECTION.SNAPSHOT}${currentSearchHash}` as OnyxKey) : key; + const result = useMemo((): UseOnyxResult => { + // Merge snapshot data with live data if possible + if (shouldUseSnapshot) { + if (isPlainObject(originalResult[0]) && isPlainObject(snapshotResult[0])) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return [{...(snapshotResult[0] as Record), ...(originalResult[0] as Record)}, originalResult[1]] as UseOnyxResult; + } - const originalResult = originalUseOnyx(snapshotKey, onyxOptions, dependencies); + if (isEmpty(snapshotResult[0])) { + return originalResult as UseOnyxResult; + } - // Extract and memoize the specific key data from snapshot if in search mode - const result = useMemo((): UseOnyxResult => { - // if it has selector, we don't need to use snapshot here - if (!shouldUseSnapshot || selector) { - return originalResult as UseOnyxResult; + return snapshotResult as UseOnyxResult; } - const keyData = getKeyData(originalResult[0] as SearchResults, key); - return [keyData, originalResult[1]] as UseOnyxResult; - }, [shouldUseSnapshot, originalResult, key, selector]); + return originalResult as UseOnyxResult; + }, [shouldUseSnapshot, originalResult, snapshotResult]); return result; }; diff --git a/tests/perf-test/ModifiedExpenseMessage.perf-test.ts b/tests/perf-test/ModifiedExpenseMessage.perf-test.ts index 56cf6553bb84..f3efcebb3a4d 100644 --- a/tests/perf-test/ModifiedExpenseMessage.perf-test.ts +++ b/tests/perf-test/ModifiedExpenseMessage.perf-test.ts @@ -14,7 +14,13 @@ import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/perf-test/ReportActionCompose.perf-test.tsx b/tests/perf-test/ReportActionCompose.perf-test.tsx index 92c7b77456e8..6c08ec241707 100644 --- a/tests/perf-test/ReportActionCompose.perf-test.tsx +++ b/tests/perf-test/ReportActionCompose.perf-test.tsx @@ -69,7 +69,13 @@ jest.mock('@src/libs/actions/EmojiPickerAction', () => { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/perf-test/ReportActionsList.perf-test.tsx b/tests/perf-test/ReportActionsList.perf-test.tsx index b1b251f352c8..cced1b7a4a43 100644 --- a/tests/perf-test/ReportActionsList.perf-test.tsx +++ b/tests/perf-test/ReportActionsList.perf-test.tsx @@ -63,7 +63,13 @@ jest.mock('@src/components/ConfirmedRoute.tsx'); beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/perf-test/ReportActionsUtils.perf-test.ts b/tests/perf-test/ReportActionsUtils.perf-test.ts index 5bb102f86ac9..796b0cb279e0 100644 --- a/tests/perf-test/ReportActionsUtils.perf-test.ts +++ b/tests/perf-test/ReportActionsUtils.perf-test.ts @@ -40,7 +40,13 @@ describe('ReportActionsUtils', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); Onyx.multiSet({ diff --git a/tests/perf-test/ReportUtils.perf-test.ts b/tests/perf-test/ReportUtils.perf-test.ts index 574d1867adec..1ccb8e075f26 100644 --- a/tests/perf-test/ReportUtils.perf-test.ts +++ b/tests/perf-test/ReportUtils.perf-test.ts @@ -66,7 +66,13 @@ describe('ReportUtils', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/perf-test/SidebarLinks.perf-test.tsx b/tests/perf-test/SidebarLinks.perf-test.tsx index cb23968dd2db..cc71dce80c47 100644 --- a/tests/perf-test/SidebarLinks.perf-test.tsx +++ b/tests/perf-test/SidebarLinks.perf-test.tsx @@ -54,7 +54,13 @@ describe('SidebarLinks', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/perf-test/SidebarUtils.perf-test.ts b/tests/perf-test/SidebarUtils.perf-test.ts index 9c1db3ad522c..399c26059e42 100644 --- a/tests/perf-test/SidebarUtils.perf-test.ts +++ b/tests/perf-test/SidebarUtils.perf-test.ts @@ -54,7 +54,13 @@ describe('SidebarUtils', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); Onyx.multiSet({ diff --git a/tests/ui/ComposerTest.tsx b/tests/ui/ComposerTest.tsx index aa94ca2e8176..75dda6cdcbb1 100644 --- a/tests/ui/ComposerTest.tsx +++ b/tests/ui/ComposerTest.tsx @@ -15,7 +15,13 @@ describe('Composer', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/ui/DebugReportActionsTest.tsx b/tests/ui/DebugReportActionsTest.tsx index a72df0a538ec..e1c607fa2870 100644 --- a/tests/ui/DebugReportActionsTest.tsx +++ b/tests/ui/DebugReportActionsTest.tsx @@ -29,7 +29,13 @@ describe('DebugReportActions', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); act(() => { Onyx.set(ONYXKEYS.NVP_PREFERRED_LOCALE, CONST.LOCALES.EN); diff --git a/tests/ui/LHNItemsPresence.tsx b/tests/ui/LHNItemsPresence.tsx index 6fb7cfea6e41..12ffec28a5c3 100644 --- a/tests/ui/LHNItemsPresence.tsx +++ b/tests/ui/LHNItemsPresence.tsx @@ -127,7 +127,13 @@ describe('SidebarLinksData', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); initOnyxDerivedValues(); }); diff --git a/tests/ui/PureReportActionItemTest.tsx b/tests/ui/PureReportActionItemTest.tsx index cda560122c28..41c9d1765ec2 100644 --- a/tests/ui/PureReportActionItemTest.tsx +++ b/tests/ui/PureReportActionItemTest.tsx @@ -49,7 +49,13 @@ describe('PureReportActionItem', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); jest.spyOn(NativeNavigation, 'useRoute').mockReturnValue({key: '', name: ''}); jest.spyOn(ReportActionUtils, 'getIOUActionForReportID').mockImplementation(getIOUActionForReportID); diff --git a/tests/ui/ReportActionComposeTest.tsx b/tests/ui/ReportActionComposeTest.tsx index ec840b47c019..95265e9e0b85 100644 --- a/tests/ui/ReportActionComposeTest.tsx +++ b/tests/ui/ReportActionComposeTest.tsx @@ -73,7 +73,13 @@ describe('ReportActionCompose Integration Tests', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/ui/ReportActionItemMessageEditTest.tsx b/tests/ui/ReportActionItemMessageEditTest.tsx index 868b555d35f7..7e33a86b1689 100644 --- a/tests/ui/ReportActionItemMessageEditTest.tsx +++ b/tests/ui/ReportActionItemMessageEditTest.tsx @@ -73,7 +73,13 @@ describe('ReportActionCompose Integration Tests', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/ui/ReportAttachments.tsx b/tests/ui/ReportAttachments.tsx index 7aae70f2e69c..9ff9a9ff23d3 100644 --- a/tests/ui/ReportAttachments.tsx +++ b/tests/ui/ReportAttachments.tsx @@ -142,7 +142,13 @@ describe('ReportAttachments', () => { [ONYXKEYS.SESSION]: {accountID: TEST_USER_ACCOUNT_ID, email: TEST_USER_LOGIN}, [ONYXKEYS.PERSONAL_DETAILS_LIST]: {[TEST_USER_ACCOUNT_ID]: {accountID: TEST_USER_ACCOUNT_ID, login: TEST_USER_LOGIN}}, }, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); beforeEach(async () => { diff --git a/tests/ui/ReportDetailsPageTest.tsx b/tests/ui/ReportDetailsPageTest.tsx index 7ce8c495292d..39475b158918 100644 --- a/tests/ui/ReportDetailsPageTest.tsx +++ b/tests/ui/ReportDetailsPageTest.tsx @@ -33,7 +33,13 @@ describe('ReportDetailsPage', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/ui/ReportListItemHeaderTest.tsx b/tests/ui/ReportListItemHeaderTest.tsx index d77eb05b4764..63aff6a02795 100644 --- a/tests/ui/ReportListItemHeaderTest.tsx +++ b/tests/ui/ReportListItemHeaderTest.tsx @@ -113,7 +113,13 @@ describe('ReportListItemHeader', () => { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/ui/TransactionItemRowRBRTest.tsx b/tests/ui/TransactionItemRowRBRTest.tsx index 197a9cdd8f10..c0a747760146 100644 --- a/tests/ui/TransactionItemRowRBRTest.tsx +++ b/tests/ui/TransactionItemRowRBRTest.tsx @@ -95,7 +95,13 @@ describe('TransactionItemRowRBR', () => { beforeAll(async () => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); await Onyx.set(ONYXKEYS.NVP_PREFERRED_LOCALE, CONST.LOCALES.DEFAULT); }); diff --git a/tests/ui/WorkspaceCategoriesTest.tsx b/tests/ui/WorkspaceCategoriesTest.tsx index e12e4ab49f8f..e0fb040f8d80 100644 --- a/tests/ui/WorkspaceCategoriesTest.tsx +++ b/tests/ui/WorkspaceCategoriesTest.tsx @@ -53,7 +53,13 @@ describe('WorkspaceCategories', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx index ace02cde0617..924638d72473 100644 --- a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx +++ b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx @@ -200,7 +200,13 @@ describe('IOURequestStepConfirmationPageTest', () => { jest.clearAllMocks(); Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); }); diff --git a/tests/unit/PersistedRequests.ts b/tests/unit/PersistedRequests.ts index 1c1b3c552c15..2f685551dc2d 100644 --- a/tests/unit/PersistedRequests.ts +++ b/tests/unit/PersistedRequests.ts @@ -15,7 +15,13 @@ const request: Request = { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/unit/ReportActionItemSingleTest.ts b/tests/unit/ReportActionItemSingleTest.ts index 8d400c96b510..d4591fb56d65 100644 --- a/tests/unit/ReportActionItemSingleTest.ts +++ b/tests/unit/ReportActionItemSingleTest.ts @@ -12,7 +12,13 @@ describe('ReportActionItemSingle', () => { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/unit/ReportActionsUtilsTest.ts b/tests/unit/ReportActionsUtilsTest.ts index db2dea655d01..887eb4aad53f 100644 --- a/tests/unit/ReportActionsUtilsTest.ts +++ b/tests/unit/ReportActionsUtilsTest.ts @@ -33,7 +33,13 @@ describe('ReportActionsUtils', () => { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/unit/SidebarFilterTest.ts b/tests/unit/SidebarFilterTest.ts index 113d16fec0b4..4ebbe5804cbd 100644 --- a/tests/unit/SidebarFilterTest.ts +++ b/tests/unit/SidebarFilterTest.ts @@ -4,6 +4,7 @@ import DateUtils from '@libs/DateUtils'; import CONST from '@src/CONST'; import type {Report} from '@src/types/onyx'; import type {ReportCollectionDataSet} from '@src/types/onyx/Report'; +import ONYXKEYS from '../../src/ONYXKEYS'; import * as LHNTestUtils from '../utils/LHNTestUtils'; import {getNavigateToChatHintRegex, translateLocal} from '../utils/TestHelper'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; @@ -13,27 +14,18 @@ import wrapOnyxWithWaitForBatchedUpdates from '../utils/wrapOnyxWithWaitForBatch // during the test depend on its methods. jest.mock('@libs/Permissions'); -const ONYXKEYS = { - PERSONAL_DETAILS_LIST: 'personalDetailsList', - IS_LOADING_APP: 'isLoadingApp', - NVP_PRIORITY_MODE: 'nvp_priorityMode', - SESSION: 'session', - BETAS: 'betas', - COLLECTION: { - REPORT: 'report_', - REPORT_ACTIONS: 'reportActions_', - POLICY: 'policy_', - REPORT_DRAFT_COMMENT: 'reportDraftComment_', - }, - NETWORK: 'network', -} as const; - // We need to fix this test as a follow up. There seems to be some problems with memory after filtering got more complicated. xdescribe('Sidebar', () => { beforeAll(() => Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }), ); diff --git a/tests/unit/SidebarOrderTest.ts b/tests/unit/SidebarOrderTest.ts index 0a3950912155..1d5371e47cd4 100644 --- a/tests/unit/SidebarOrderTest.ts +++ b/tests/unit/SidebarOrderTest.ts @@ -57,7 +57,13 @@ describe('Sidebar', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); initOnyxDerivedValues(); IntlStore.load(CONST.LOCALES.EN); diff --git a/tests/unit/SidebarTest.ts b/tests/unit/SidebarTest.ts index 3f2fa09cfd8b..2bea14b68f69 100644 --- a/tests/unit/SidebarTest.ts +++ b/tests/unit/SidebarTest.ts @@ -24,7 +24,13 @@ describe('Sidebar', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); initOnyxDerivedValues(); diff --git a/tests/unit/SidebarUtilsTest.ts b/tests/unit/SidebarUtilsTest.ts index a417d1dc3451..89ce35853274 100644 --- a/tests/unit/SidebarUtilsTest.ts +++ b/tests/unit/SidebarUtilsTest.ts @@ -40,7 +40,13 @@ describe('SidebarUtils', () => { beforeAll(async () => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); IntlStore.load(CONST.LOCALES.EN); initOnyxDerivedValues(); diff --git a/tests/unit/TransactionGroupListItemTest.tsx b/tests/unit/TransactionGroupListItemTest.tsx index 0a3dc1ebb35e..3a67d2abb561 100644 --- a/tests/unit/TransactionGroupListItemTest.tsx +++ b/tests/unit/TransactionGroupListItemTest.tsx @@ -156,7 +156,13 @@ describe('TransactionGroupListItem', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); jest.spyOn(NativeNavigation, 'useRoute').mockReturnValue({key: '', name: ''}); }); diff --git a/tests/unit/hooks/useShowNotFoundPageInIOUStep.test.ts b/tests/unit/hooks/useShowNotFoundPageInIOUStep.test.ts index 840270d59578..037579a600a0 100644 --- a/tests/unit/hooks/useShowNotFoundPageInIOUStep.test.ts +++ b/tests/unit/hooks/useShowNotFoundPageInIOUStep.test.ts @@ -12,7 +12,13 @@ describe('useShowNotFoundPageInIOUStep', () => { beforeAll(() => { Onyx.init({ keys: ONYXKEYS, - evictableKeys: [ONYXKEYS.COLLECTION.REPORT_ACTIONS], + evictableKeys: [ + ONYXKEYS.COLLECTION.REPORT_ACTIONS, + ONYXKEYS.COLLECTION.SNAPSHOT, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES, + ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS, + ], }); });