diff --git a/src/components/MoneyRequestConfirmationList.tsx b/src/components/MoneyRequestConfirmationList.tsx
index 3a65c74e6837..b89435f91164 100755
--- a/src/components/MoneyRequestConfirmationList.tsx
+++ b/src/components/MoneyRequestConfirmationList.tsx
@@ -347,11 +347,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);
@@ -506,11 +506,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) {
diff --git a/tests/ui/components/IOURequestStepConfirmationPageTest.tsx b/tests/ui/components/IOURequestStepConfirmationPageTest.tsx
index f8f3abc93264..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';
@@ -85,6 +86,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 {
@@ -122,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: {
@@ -145,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 {
@@ -218,24 +225,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -259,24 +268,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
fireEvent.press(await screen.findByText(translateLocal('iou.splitExpense')));
@@ -308,24 +319,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
fireEvent.press(await screen.findByText(translateLocal('iou.createExpenses', {expensesNumber: 2})));
@@ -347,6 +360,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,30 +392,32 @@ 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}],
});
});
const {rerender} = render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -436,24 +457,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
rerender(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -480,6 +503,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,30 +519,32 @@ 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}],
});
});
const {rerender} = render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -534,24 +565,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
rerender(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -633,24 +666,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -691,6 +726,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,30 +763,32 @@ 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}],
});
});
const {rerender} = render(
-
-
-
-
-
+
+
+
+
+
+
+
,
);
@@ -784,24 +827,26 @@ describe('IOURequestStepConfirmationPageTest', () => {
rerender(
-
-
-
-
-
+
+
+
+
+
+
+
,
);