From 5060e75e1740b63c7de4fb7cc0927e26cb2b1641 Mon Sep 17 00:00:00 2001 From: thelullabyy Date: Wed, 2 Jul 2025 13:53:10 +0700 Subject: [PATCH 1/2] fix: Workspace chat still displays GBR in LHN after changing report --- src/libs/actions/IOU.ts | 8 +++- tests/actions/IOUTest.ts | 78 ++++++++++++++++++++++++++++++++++++ tests/unit/DebugUtilsTest.ts | 12 ++++++ 3 files changed, 97 insertions(+), 1 deletion(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 1842a2755c1e..3ab2a310008c 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -96,6 +96,7 @@ import { getTrackExpenseActionableWhisper, isActionableTrackExpense, isCreatedAction, + isDeletedAction, isMoneyRequestAction, isReportPreviewAction, } from '@libs/ReportActionsUtils'; @@ -9239,7 +9240,12 @@ function getIOUReportActionToApproveOrPay(chatReport: OnyxEntry { }); }); }); + + describe('getIOUReportActionToApproveOrPay', () => { + it('should exclude deleted actions', async () => { + const reportID = '1'; + const policyID = '2'; + const fakePolicy: Policy = { + ...createRandomPolicy(Number(policyID)), + approvalMode: CONST.POLICY.APPROVAL_MODE.BASIC, + }; + + const fakeReport: Report = { + ...createRandomReport(Number(reportID)), + type: CONST.REPORT.TYPE.EXPENSE, + policyID, + stateNum: CONST.REPORT.STATE_NUM.SUBMITTED, + statusNum: CONST.REPORT.STATUS_NUM.SUBMITTED, + managerID: RORY_ACCOUNT_ID, + chatType: CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT, + }; + const fakeTransaction1: Transaction = { + ...createRandomTransaction(0), + reportID, + bank: CONST.EXPENSIFY_CARD.BANK, + status: CONST.TRANSACTION.STATUS.PENDING, + }; + const fakeTransaction2: Transaction = { + ...createRandomTransaction(1), + reportID, + amount: 27, + receipt: { + source: 'test', + state: CONST.IOU.RECEIPT_STATE.SCAN_FAILED, + }, + merchant: CONST.TRANSACTION.PARTIAL_TRANSACTION_MERCHANT, + modifiedMerchant: undefined, + }; + const fakeTransaction3: Transaction = { + ...createRandomTransaction(2), + reportID, + amount: 100, + }; + + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}${fakeReport.reportID}`, fakeReport); + await Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION}${fakeTransaction1.transactionID}`, fakeTransaction1); + await Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION}${fakeTransaction2.transactionID}`, fakeTransaction2); + await Onyx.set(`${ONYXKEYS.COLLECTION.TRANSACTION}${fakeTransaction3.transactionID}`, fakeTransaction3); + await Onyx.set(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, fakePolicy); + await waitForBatchedUpdates(); + + const deletedReportAction = { + reportActionID: '0', + actionName: CONST.REPORT.ACTIONS.TYPE.REPORT_PREVIEW, + created: '2024-08-08 18:70:44.171', + childReportID: reportID, + }; + + const MOCK_REPORT_ACTIONS: ReportActions = { + [deletedReportAction.reportActionID]: deletedReportAction, + [reportID]: { + reportActionID: reportID, + actionName: CONST.REPORT.ACTIONS.TYPE.REPORT_PREVIEW, + created: '2024-08-08 19:70:44.171', + childReportID: reportID, + message: [ + { + type: 'TEXT', + text: 'Hello world!', + }, + ], + }, + }; + + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${fakeReport.reportID}`, MOCK_REPORT_ACTIONS); + + expect(getIOUReportActionToApproveOrPay(fakeReport, undefined)).toMatchObject(MOCK_REPORT_ACTIONS[reportID]); + }); + }); }); diff --git a/tests/unit/DebugUtilsTest.ts b/tests/unit/DebugUtilsTest.ts index a8698d6b2d20..b734111741c7 100644 --- a/tests/unit/DebugUtilsTest.ts +++ b/tests/unit/DebugUtilsTest.ts @@ -1077,6 +1077,12 @@ describe('DebugUtils', () => { reportActionID: '0', actionName: CONST.REPORT.ACTIONS.TYPE.CREATED, created: '2024-08-08 18:70:44.171', + message: [ + { + type: 'TEXT', + text: 'Hello world!', + }, + ], }, // eslint-disable-next-line @typescript-eslint/naming-convention '1': { @@ -1084,6 +1090,12 @@ describe('DebugUtils', () => { actionName: CONST.REPORT.ACTIONS.TYPE.REPORT_PREVIEW, created: '2024-08-08 19:70:44.171', childReportID: '2', + message: [ + { + type: 'TEXT', + text: 'Hello world!', + }, + ], }, }; await Onyx.multiSet({ From 298a7383f86519d2b30947da4051ccdf11abc951 Mon Sep 17 00:00:00 2001 From: thelullabyy Date: Wed, 2 Jul 2025 14:36:16 +0700 Subject: [PATCH 2/2] fix test job failed --- tests/actions/IOUTest.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index 43af8228eda9..1e1dfeae924c 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -6407,6 +6407,7 @@ describe('actions/IOU', () => { const fakePolicy: Policy = { ...createRandomPolicy(Number(policyID)), approvalMode: CONST.POLICY.APPROVAL_MODE.BASIC, + type: CONST.POLICY.TYPE.TEAM, }; const fakeReport: Report = {