From f6e53ef1a9e736b434809941f807409a5d4eba71 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Tue, 25 Nov 2025 19:19:56 +0300 Subject: [PATCH 1/3] avoid setting tax rate if we don't show tax --- src/components/MoneyRequestConfirmationList.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/MoneyRequestConfirmationList.tsx b/src/components/MoneyRequestConfirmationList.tsx index ac601e5f361e..48d6197da69d 100755 --- a/src/components/MoneyRequestConfirmationList.tsx +++ b/src/components/MoneyRequestConfirmationList.tsx @@ -346,11 +346,11 @@ function MoneyRequestConfirmationList({ // Update the tax code when the default changes (for example, because the transaction currency changed) const defaultTaxCode = getDefaultTaxCode(policy, transaction) ?? ''; useEffect(() => { - if (!transactionID || isReadOnly) { + if (!transactionID || isReadOnly || !shouldShowTax) { return; } setMoneyRequestTaxRate(transactionID, defaultTaxCode); - }, [defaultTaxCode, transactionID, isReadOnly]); + }, [defaultTaxCode, transactionID, isReadOnly, shouldShowTax]); const distance = getDistanceInMeters(transaction, unit); const prevDistance = usePrevious(distance); @@ -494,11 +494,11 @@ function MoneyRequestConfirmationList({ const taxAmount = calculateTaxAmount(taxPercentage, taxableAmount, transaction?.currency ?? CONST.CURRENCY.USD); const taxAmountInSmallestCurrencyUnits = convertToBackendAmount(Number.parseFloat(taxAmount.toString())); useEffect(() => { - if (!transactionID || isReadOnly) { + if (!transactionID || isReadOnly || !shouldShowTax) { return; } setMoneyRequestTaxAmount(transactionID, taxAmountInSmallestCurrencyUnits); - }, [transactionID, taxAmountInSmallestCurrencyUnits, isReadOnly]); + }, [transactionID, taxAmountInSmallestCurrencyUnits, isReadOnly, shouldShowTax]); // If completing a split expense fails, set didConfirm to false to allow the user to edit the fields again if (isEditingSplitBill && didConfirm) { From 61491423416f087c142d4d028a6714a5023d9478 Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Wed, 26 Nov 2025 18:10:16 +0300 Subject: [PATCH 2/3] fix test --- .../IOURequestStepConfirmationPageTest.tsx | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx index f8f3abc93264..e446c8b17927 100644 --- a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx +++ b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx @@ -85,6 +85,7 @@ const REPORT_ID = '1'; const PARTICIPANT_ACCOUNT_ID = 2; const TRANSACTION_ID = '1'; const POLICY_ID = 'test-policy-id'; +const POLICY_CHAT_REPORT_ID = '595'; // Helper to create a policy with tax and distance enabled function createPolicyWithTaxAndDistance(): Policy { @@ -347,6 +348,12 @@ describe('IOURequestStepConfirmationPageTest', () => { policyID: POLICY_ID, type: CONST.REPORT.TYPE.EXPENSE, }); + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${POLICY_CHAT_REPORT_ID}`, { + reportID: POLICY_CHAT_REPORT_ID, + policyID: POLICY_ID, + type: CONST.REPORT.TYPE.CHAT, + chatType: CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT, + }); await Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${TRANSACTION_ID}`, { transactionID: TRANSACTION_ID, reportID: REPORT_ID, @@ -373,7 +380,7 @@ describe('IOURequestStepConfirmationPageTest', () => { created: '2025-01-15', taxCode: 'taxRate1', iouRequestType: CONST.IOU.REQUEST_TYPE.DISTANCE, - participants: [{accountID: PARTICIPANT_ACCOUNT_ID, selected: true}], + participants: [{isPolicyExpenseChat: true, selected: true, reportID: POLICY_CHAT_REPORT_ID}], }); }); @@ -480,6 +487,12 @@ describe('IOURequestStepConfirmationPageTest', () => { policyID: POLICY_ID, type: CONST.REPORT.TYPE.EXPENSE, }); + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${POLICY_CHAT_REPORT_ID}`, { + reportID: POLICY_CHAT_REPORT_ID, + policyID: POLICY_ID, + type: CONST.REPORT.TYPE.CHAT, + chatType: CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT, + }); await Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${TRANSACTION_ID}`, { transactionID: TRANSACTION_ID, reportID: REPORT_ID, @@ -490,7 +503,7 @@ describe('IOURequestStepConfirmationPageTest', () => { taxCode: 'taxRate1', taxAmount: 476, iouRequestType: CONST.IOU.REQUEST_TYPE.MANUAL, - participants: [{accountID: PARTICIPANT_ACCOUNT_ID, selected: true}], + participants: [{isPolicyExpenseChat: true, selected: true, reportID: POLICY_CHAT_REPORT_ID}], }); }); @@ -691,6 +704,12 @@ describe('IOURequestStepConfirmationPageTest', () => { await act(async () => { await Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${POLICY_ID}`, policy); + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${POLICY_CHAT_REPORT_ID}`, { + reportID: POLICY_CHAT_REPORT_ID, + policyID: POLICY_ID, + type: CONST.REPORT.TYPE.CHAT, + chatType: CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT, + }); await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}${REPORT_ID}`, { reportID: REPORT_ID, policyID: POLICY_ID, @@ -722,7 +741,7 @@ describe('IOURequestStepConfirmationPageTest', () => { created: '2025-01-15', taxCode: 'taxRate1', iouRequestType: CONST.IOU.REQUEST_TYPE.DISTANCE, - participants: [{accountID: PARTICIPANT_ACCOUNT_ID, selected: true}], + participants: [{isPolicyExpenseChat: true, selected: true, reportID: POLICY_CHAT_REPORT_ID}], }); }); From 8b971aa42acd084b89d527334162cac82fe06dff Mon Sep 17 00:00:00 2001 From: FitseTLT Date: Wed, 26 Nov 2025 18:47:27 +0300 Subject: [PATCH 3/3] fix test --- .../IOURequestStepConfirmationPageTest.tsx | 388 ++++++++++-------- 1 file changed, 207 insertions(+), 181 deletions(-) diff --git a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx index e446c8b17927..1f27205ba155 100644 --- a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx +++ b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx @@ -3,6 +3,7 @@ import React from 'react'; import Onyx from 'react-native-onyx'; import OnyxUtils from 'react-native-onyx/dist/OnyxUtils'; import {CurrentUserPersonalDetailsProvider} from '@components/CurrentUserPersonalDetailsProvider'; +import HTMLEngineProvider from '@components/HTMLEngineProvider'; import {LocaleContextProvider} from '@components/LocaleContextProvider'; import OnyxListItemProvider from '@components/OnyxListItemProvider'; import IOURequestStepConfirmationWithWritableReportOrNotFound from '@pages/iou/request/step/IOURequestStepConfirmation'; @@ -123,10 +124,11 @@ function createPolicyWithTaxAndDistance(): Policy { customUnits: { [CONST.CUSTOM_UNITS.NAME_DISTANCE]: { name: CONST.CUSTOM_UNITS.NAME_DISTANCE, - customUnitID: 'customUnitID', + customUnitID: CONST.CUSTOM_UNITS.NAME_DISTANCE, enabled: true, attributes: { unit: CONST.CUSTOM_UNITS.DISTANCE_UNIT_MILES, + taxEnabled: true, }, rates: { altTaxRate: { @@ -146,6 +148,10 @@ function createPolicyWithTaxAndDistance(): Policy { }; } +function HTMLProviderWrapper({children}: {children: React.ReactNode}) { + return {children}; +} + // Helper to create waypoints function createWaypoints(startAddress: string, endAddress: string): WaypointCollection { return { @@ -219,24 +225,26 @@ describe('IOURequestStepConfirmationPageTest', () => { render( - - - - - + + + + + + + , ); @@ -260,24 +268,26 @@ describe('IOURequestStepConfirmationPageTest', () => { render( - - - - - + + + + + + + , ); fireEvent.press(await screen.findByText(translateLocal('iou.splitExpense'))); @@ -309,24 +319,26 @@ describe('IOURequestStepConfirmationPageTest', () => { render( - - - - - + + + + + + + , ); fireEvent.press(await screen.findByText(translateLocal('iou.createExpenses', {expensesNumber: 2}))); @@ -386,24 +398,26 @@ describe('IOURequestStepConfirmationPageTest', () => { const {rerender} = render( - - - - - + + + + + + + , ); @@ -443,24 +457,26 @@ describe('IOURequestStepConfirmationPageTest', () => { rerender( - - - - - + + + + + + + , ); @@ -509,24 +525,26 @@ describe('IOURequestStepConfirmationPageTest', () => { const {rerender} = render( - - - - - + + + + + + + , ); @@ -547,24 +565,26 @@ describe('IOURequestStepConfirmationPageTest', () => { rerender( - - - - - + + + + + + + , ); @@ -646,24 +666,26 @@ describe('IOURequestStepConfirmationPageTest', () => { render( - - - - - + + + + + + + , ); @@ -747,24 +769,26 @@ describe('IOURequestStepConfirmationPageTest', () => { const {rerender} = render( - - - - - + + + + + + + , ); @@ -803,24 +827,26 @@ describe('IOURequestStepConfirmationPageTest', () => { rerender( - - - - - + + + + + + + , );