From 34686baf0423e067023feb85bce54c404406389f Mon Sep 17 00:00:00 2001 From: TaduJR Date: Sun, 22 Mar 2026 15:28:09 +0300 Subject: [PATCH 1/5] refactor: Inline search highlight side-effect into IOU action functions --- src/libs/actions/IOU/PerDiem.ts | 7 +++++++ src/libs/actions/IOU/SendInvoice.ts | 6 ++++++ src/libs/actions/IOU/index.ts | 19 ++++++++++++++----- tests/actions/IOUTest.ts | 20 +++----------------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/libs/actions/IOU/PerDiem.ts b/src/libs/actions/IOU/PerDiem.ts index 3eb3d4983d25..ea42b9991fdd 100644 --- a/src/libs/actions/IOU/PerDiem.ts +++ b/src/libs/actions/IOU/PerDiem.ts @@ -10,6 +10,7 @@ import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils'; import {updateIOUOwnerAndTotal} from '@libs/IOUUtils'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import {validateAmount} from '@libs/MoneyRequestUtils'; +import isReportTopmostSplitNavigator from '@libs/Navigation/helpers/isReportTopmostSplitNavigator'; import Navigation from '@libs/Navigation/Navigation'; // eslint-disable-next-line @typescript-eslint/no-deprecated import {buildNextStepNew, buildOptimisticNextStep} from '@libs/NextStepUtils'; @@ -38,6 +39,7 @@ import playSound, {SOUNDS} from '@libs/Sound'; import {buildOptimisticTransaction} from '@libs/TransactionUtils'; import {buildOptimisticPolicyRecentlyUsedTags} from '@userActions/Policy/Tag'; import {notifyNewAction} from '@userActions/Report'; +import {mergeTransactionIdsHighlightOnSearchRoute} from '@userActions/Transaction'; import {removeDraftTransaction} from '@userActions/TransactionEdit'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -999,6 +1001,11 @@ function submitPerDiemExpense(submitPerDiemExpenseInformation: PerDiemExpenseInf // eslint-disable-next-line @typescript-eslint/no-deprecated InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); + + if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction.transactionID) { + mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); + } + handleNavigateAfterExpenseCreate({activeReportID, transactionID: transaction.transactionID, isFromGlobalCreate, shouldHandleNavigation}); if (activeReportID) { diff --git a/src/libs/actions/IOU/SendInvoice.ts b/src/libs/actions/IOU/SendInvoice.ts index 19ce3984f710..c056476c7670 100644 --- a/src/libs/actions/IOU/SendInvoice.ts +++ b/src/libs/actions/IOU/SendInvoice.ts @@ -8,6 +8,7 @@ import DateUtils from '@libs/DateUtils'; import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Log from '@libs/Log'; +import isReportTopmostSplitNavigator from '@libs/Navigation/helpers/isReportTopmostSplitNavigator'; import {getReportActionHtml, getReportActionText} from '@libs/ReportActionsUtils'; import type {OptimisticChatReport, OptimisticCreatedReportAction, OptimisticIOUReportAction} from '@libs/ReportUtils'; import { @@ -23,6 +24,7 @@ import {startSpan} from '@libs/telemetry/activeSpans'; import {buildOptimisticTransaction} from '@libs/TransactionUtils'; import {buildOptimisticPolicyRecentlyUsedTags} from '@userActions/Policy/Tag'; import {notifyNewAction} from '@userActions/Report'; +import {mergeTransactionIdsHighlightOnSearchRoute} from '@userActions/Transaction'; import {removeDraftTransaction} from '@userActions/TransactionEdit'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -818,6 +820,10 @@ function sendInvoice({ // eslint-disable-next-line @typescript-eslint/no-deprecated InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); + if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transactionID) { + mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.INVOICE, {[transactionID]: true}); + } + handleNavigateAfterExpenseCreate({ activeReportID: invoiceRoom.reportID, transactionID, diff --git a/src/libs/actions/IOU/index.ts b/src/libs/actions/IOU/index.ts index d6a63ac7636b..bc90bec852af 100644 --- a/src/libs/actions/IOU/index.ts +++ b/src/libs/actions/IOU/index.ts @@ -1174,15 +1174,12 @@ function handleNavigateAfterExpenseCreate({ return; } - const type = isInvoice ? CONST.SEARCH.DATA_TYPES.INVOICE : CONST.SEARCH.DATA_TYPES.EXPENSE; - - // We mark this transaction to be highlighted when opening the expense search route page - mergeTransactionIdsHighlightOnSearchRoute(type, {[transactionID]: true}); - if (!shouldHandleNavigation) { return; } + const type = isInvoice ? CONST.SEARCH.DATA_TYPES.INVOICE : CONST.SEARCH.DATA_TYPES.EXPENSE; + // When already on Search ROOT with the same type (expense vs invoice), we navigate to the same screen (no-op or refresh); record as dismiss_modal_only. // When on another Search sub-tab (e.g. Chats), or on Search with a different type (e.g. on Invoice, submitting expense), record as navigate_to_search. const rootState = navigationRef.getRootState(); @@ -6607,6 +6604,10 @@ function requestMoney(requestMoneyInformation: RequestMoneyInformation): {iouRep } if (!requestMoneyInformation.isRetry) { + if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction.transactionID) { + mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); + } + handleNavigateAfterExpenseCreate({ activeReportID: backToReport ?? activeReportID, transactionID: transaction.transactionID, @@ -6991,6 +6992,10 @@ function trackExpense(params: CreateTrackExpenseParams) { } if (!params.isRetry) { + if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction?.transactionID) { + mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); + } + handleNavigateAfterExpenseCreate({ activeReportID, transactionID: transaction?.transactionID, @@ -7850,6 +7855,10 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); const activeReportID = isMoneyRequestReport && report?.reportID ? report.reportID : parameters.chatReportID; + if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && parameters.transactionID) { + mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[parameters.transactionID]: true}); + } + if (shouldHandleNavigation) { handleNavigateAfterExpenseCreate({activeReportID: backToReport ?? activeReportID, isFromGlobalCreate, transactionID: parameters.transactionID}); } diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 5054f2febac2..5579ca3f3599 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -14982,40 +14982,26 @@ describe('actions/IOU', () => { }); }); - it('handleNavigateAfterExpenseCreate', async () => { + it('handleNavigateAfterExpenseCreate does not call mergeTransactionIdsHighlightOnSearchRoute (highlight is now inlined in action functions)', async () => { const mockedIsReportTopmostSplitNavigator = isReportTopmostSplitNavigator as jest.MockedFunction; const spyOnMergeTransactionIdsHighlightOnSearchRoute = jest.spyOn(require('@libs/actions/Transaction'), 'mergeTransactionIdsHighlightOnSearchRoute'); const activeReportID = '1'; const transactionID = '1'; mockedIsReportTopmostSplitNavigator.mockReturnValue(false); - // When on the Inbox tab, or NOT from the "global create" button, or without a transactionID, - // the function dismissModalAndOpenReportInInboxTab will always be called to handle it, - // so mergeTransactionIdsHighlightOnSearchRoute will never be invoked. + // Highlight side-effect is now inlined in each action function, not in this helper. handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: false}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); - mockedIsReportTopmostSplitNavigator.mockReturnValue(true); handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true, transactionID}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); - // When NOT on the Inbox tab - mockedIsReportTopmostSplitNavigator.mockReturnValue(false); - handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true, transactionID}); - - // then mergeTransactionIdsHighlightOnSearchRoute will be called - expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(1); - expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledWith(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transactionID]: true}); - spyOnMergeTransactionIdsHighlightOnSearchRoute.mockClear(); - - // If expense is an invoice handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true, transactionID, isInvoice: true}); + expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); - expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(1); - expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledWith(CONST.SEARCH.DATA_TYPES.INVOICE, {[transactionID]: true}); spyOnMergeTransactionIdsHighlightOnSearchRoute.mockReset(); }); From 737f05133352bc7d768eee4faf12a72ddd9fc200 Mon Sep 17 00:00:00 2001 From: TaduJR Date: Sun, 22 Mar 2026 20:00:14 +0300 Subject: [PATCH 2/5] refactor: Extract highlightTransactionOnSearchRouteIfNeeded helper to reduce duplication --- src/libs/actions/IOU/PerDiem.ts | 7 ++----- src/libs/actions/IOU/SendInvoice.ts | 7 ++----- src/libs/actions/IOU/index.ts | 25 ++++++++++++++++--------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/libs/actions/IOU/PerDiem.ts b/src/libs/actions/IOU/PerDiem.ts index ea42b9991fdd..ad4042fd3d41 100644 --- a/src/libs/actions/IOU/PerDiem.ts +++ b/src/libs/actions/IOU/PerDiem.ts @@ -10,7 +10,6 @@ import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils'; import {updateIOUOwnerAndTotal} from '@libs/IOUUtils'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import {validateAmount} from '@libs/MoneyRequestUtils'; -import isReportTopmostSplitNavigator from '@libs/Navigation/helpers/isReportTopmostSplitNavigator'; import Navigation from '@libs/Navigation/Navigation'; // eslint-disable-next-line @typescript-eslint/no-deprecated import {buildNextStepNew, buildOptimisticNextStep} from '@libs/NextStepUtils'; @@ -39,7 +38,6 @@ import playSound, {SOUNDS} from '@libs/Sound'; import {buildOptimisticTransaction} from '@libs/TransactionUtils'; import {buildOptimisticPolicyRecentlyUsedTags} from '@userActions/Policy/Tag'; import {notifyNewAction} from '@userActions/Report'; -import {mergeTransactionIdsHighlightOnSearchRoute} from '@userActions/Transaction'; import {removeDraftTransaction} from '@userActions/TransactionEdit'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -60,6 +58,7 @@ import { getReportPreviewAction, getUserAccountID, handleNavigateAfterExpenseCreate, + highlightTransactionOnSearchRouteIfNeeded, mergePolicyRecentlyUsedCategories, mergePolicyRecentlyUsedCurrencies, } from '.'; @@ -1002,9 +1001,7 @@ function submitPerDiemExpense(submitPerDiemExpenseInformation: PerDiemExpenseInf // eslint-disable-next-line @typescript-eslint/no-deprecated InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); - if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction.transactionID) { - mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); - } + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, transaction.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); handleNavigateAfterExpenseCreate({activeReportID, transactionID: transaction.transactionID, isFromGlobalCreate, shouldHandleNavigation}); diff --git a/src/libs/actions/IOU/SendInvoice.ts b/src/libs/actions/IOU/SendInvoice.ts index c056476c7670..1af58b437347 100644 --- a/src/libs/actions/IOU/SendInvoice.ts +++ b/src/libs/actions/IOU/SendInvoice.ts @@ -8,7 +8,6 @@ import DateUtils from '@libs/DateUtils'; import {getMicroSecondOnyxErrorWithTranslationKey} from '@libs/ErrorUtils'; import {formatPhoneNumber} from '@libs/LocalePhoneNumber'; import Log from '@libs/Log'; -import isReportTopmostSplitNavigator from '@libs/Navigation/helpers/isReportTopmostSplitNavigator'; import {getReportActionHtml, getReportActionText} from '@libs/ReportActionsUtils'; import type {OptimisticChatReport, OptimisticCreatedReportAction, OptimisticIOUReportAction} from '@libs/ReportUtils'; import { @@ -24,7 +23,6 @@ import {startSpan} from '@libs/telemetry/activeSpans'; import {buildOptimisticTransaction} from '@libs/TransactionUtils'; import {buildOptimisticPolicyRecentlyUsedTags} from '@userActions/Policy/Tag'; import {notifyNewAction} from '@userActions/Report'; -import {mergeTransactionIdsHighlightOnSearchRoute} from '@userActions/Transaction'; import {removeDraftTransaction} from '@userActions/TransactionEdit'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -40,6 +38,7 @@ import { getReceiptError, getSearchOnyxUpdate, handleNavigateAfterExpenseCreate, + highlightTransactionOnSearchRouteIfNeeded, mergePolicyRecentlyUsedCategories, mergePolicyRecentlyUsedCurrencies, } from '.'; @@ -820,9 +819,7 @@ function sendInvoice({ // eslint-disable-next-line @typescript-eslint/no-deprecated InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); - if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transactionID) { - mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.INVOICE, {[transactionID]: true}); - } + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, transactionID, CONST.SEARCH.DATA_TYPES.INVOICE); handleNavigateAfterExpenseCreate({ activeReportID: invoiceRoom.reportID, diff --git a/src/libs/actions/IOU/index.ts b/src/libs/actions/IOU/index.ts index bc90bec852af..0baed0270b58 100644 --- a/src/libs/actions/IOU/index.ts +++ b/src/libs/actions/IOU/index.ts @@ -258,6 +258,7 @@ import type RecentlyUsedTags from '@src/types/onyx/RecentlyUsedTags'; import type {ReportNextStep} from '@src/types/onyx/Report'; import type ReportAction from '@src/types/onyx/ReportAction'; import type {OnyxData} from '@src/types/onyx/Request'; +import type {SearchDataTypes} from '@src/types/onyx/SearchResults'; import type {Comment, Receipt, ReceiptSource, Routes, SplitShares, TransactionChanges, TransactionCustomUnit, WaypointCollection} from '@src/types/onyx/Transaction'; import type {FileObject} from '@src/types/utils/Attachment'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; @@ -1142,6 +1143,17 @@ function dismissModalAndOpenReportInInboxTab(reportID?: string, isInvoice?: bool } } +/** + * Marks a transaction for highlight on the Search page when the expense was created + * from the global create button and the user is not on the Inbox tab. + */ +function highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate: boolean | undefined, transactionID: string | undefined, dataType: SearchDataTypes) { + if (!isFromGlobalCreate || isReportTopmostSplitNavigator() || !transactionID) { + return; + } + mergeTransactionIdsHighlightOnSearchRoute(dataType, {[transactionID]: true}); +} + /** * Helper to navigate after an expense is created in order to standardize the post‑creation experience * when creating an expense from the global create button. @@ -6604,9 +6616,7 @@ function requestMoney(requestMoneyInformation: RequestMoneyInformation): {iouRep } if (!requestMoneyInformation.isRetry) { - if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction.transactionID) { - mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); - } + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, transaction.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); handleNavigateAfterExpenseCreate({ activeReportID: backToReport ?? activeReportID, @@ -6992,9 +7002,7 @@ function trackExpense(params: CreateTrackExpenseParams) { } if (!params.isRetry) { - if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && transaction?.transactionID) { - mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[transaction.transactionID]: true}); - } + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, transaction?.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); handleNavigateAfterExpenseCreate({ activeReportID, @@ -7855,9 +7863,7 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); const activeReportID = isMoneyRequestReport && report?.reportID ? report.reportID : parameters.chatReportID; - if (isFromGlobalCreate && !isReportTopmostSplitNavigator() && parameters.transactionID) { - mergeTransactionIdsHighlightOnSearchRoute(CONST.SEARCH.DATA_TYPES.EXPENSE, {[parameters.transactionID]: true}); - } + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, parameters.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); if (shouldHandleNavigation) { handleNavigateAfterExpenseCreate({activeReportID: backToReport ?? activeReportID, isFromGlobalCreate, transactionID: parameters.transactionID}); @@ -13288,6 +13294,7 @@ export { setMoneyRequestTimeCount, getCleanUpTransactionThreadReportOnyxData, handleNavigateAfterExpenseCreate, + highlightTransactionOnSearchRouteIfNeeded, buildMinimalTransactionForFormula, buildOnyxDataForMoneyRequest, createSplitsAndOnyxData, From eaa85732d1ff2f91b356bf83d3b3ea238cfa07ae Mon Sep 17 00:00:00 2001 From: TaduJR Date: Mon, 23 Mar 2026 12:32:06 +0300 Subject: [PATCH 3/5] revert: test name and remove comment --- tests/actions/IOUTest.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 5579ca3f3599..616e1920f212 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -14982,14 +14982,13 @@ describe('actions/IOU', () => { }); }); - it('handleNavigateAfterExpenseCreate does not call mergeTransactionIdsHighlightOnSearchRoute (highlight is now inlined in action functions)', async () => { + it('handleNavigateAfterExpenseCreate', async () => { const mockedIsReportTopmostSplitNavigator = isReportTopmostSplitNavigator as jest.MockedFunction; const spyOnMergeTransactionIdsHighlightOnSearchRoute = jest.spyOn(require('@libs/actions/Transaction'), 'mergeTransactionIdsHighlightOnSearchRoute'); const activeReportID = '1'; const transactionID = '1'; mockedIsReportTopmostSplitNavigator.mockReturnValue(false); - // Highlight side-effect is now inlined in each action function, not in this helper. handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: false}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); From 379e1fa0fb2e66158d3037f109d534e116538bc4 Mon Sep 17 00:00:00 2001 From: TaduJR Date: Mon, 23 Mar 2026 12:38:49 +0300 Subject: [PATCH 4/5] refactor: Move highlight inside shouldHandleNavigation guard in createDistanceRequest --- src/libs/actions/IOU/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libs/actions/IOU/index.ts b/src/libs/actions/IOU/index.ts index 0baed0270b58..456471662176 100644 --- a/src/libs/actions/IOU/index.ts +++ b/src/libs/actions/IOU/index.ts @@ -7863,9 +7863,8 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest InteractionManager.runAfterInteractions(() => removeDraftTransaction(CONST.IOU.OPTIMISTIC_TRANSACTION_ID)); const activeReportID = isMoneyRequestReport && report?.reportID ? report.reportID : parameters.chatReportID; - highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, parameters.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); - if (shouldHandleNavigation) { + highlightTransactionOnSearchRouteIfNeeded(isFromGlobalCreate, parameters.transactionID, CONST.SEARCH.DATA_TYPES.EXPENSE); handleNavigateAfterExpenseCreate({activeReportID: backToReport ?? activeReportID, isFromGlobalCreate, transactionID: parameters.transactionID}); } From 9639d5aa47807ccdd1bc72c6cc2ef45cc4e0f5ca Mon Sep 17 00:00:00 2001 From: TaduJR Date: Mon, 23 Mar 2026 12:54:37 +0300 Subject: [PATCH 5/5] fix: Restore inbox-tab test case --- tests/actions/IOUTest.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 616e1920f212..14875f767187 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -14995,6 +14995,11 @@ describe('actions/IOU', () => { handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); + mockedIsReportTopmostSplitNavigator.mockReturnValue(true); + handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true, transactionID}); + expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0); + + mockedIsReportTopmostSplitNavigator.mockReturnValue(false); handleNavigateAfterExpenseCreate({activeReportID, isFromGlobalCreate: true, transactionID}); expect(spyOnMergeTransactionIdsHighlightOnSearchRoute).toHaveBeenCalledTimes(0);