Skip to content

Commit 25a7858

Browse files
authored
Merge pull request #92768 from Expensify/fix/app-drs-tax-rate-optional-chaining
[No QA] Fix APP-DRS TypeError when policy rule tax override lacks field_id_TAX
2 parents ea9e97c + ffe3e44 commit 25a7858

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

src/libs/ModifiedExpenseMessage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ function getRulesModifiedMessage(
205205

206206
if (key === 'tax') {
207207
const taxEntry = value as PolicyRulesModifiedFields['tax'];
208-
const taxRateName = taxEntry?.field_id_TAX.name ?? '';
208+
const taxRateName = taxEntry?.field_id_TAX?.name ?? '';
209209
return translate('iou.rulesModifiedFields.tax', taxRateName, isFirst);
210210
}
211211

tests/unit/ModifiedExpenseMessageTest.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,30 @@ describe('ModifiedExpenseMessage', () => {
11781178
expect(result).toEqual(expectedResult);
11791179
});
11801180

1181+
it('does not throw when tax override is missing field_id_TAX', () => {
1182+
const reportAction = {
1183+
...createRandomReportAction(1),
1184+
actionName: CONST.REPORT.ACTIONS.TYPE.MODIFIED_EXPENSE,
1185+
originalMessage: {
1186+
policyID: '1234',
1187+
policyRulesModifiedFields: {
1188+
tax: {},
1189+
},
1190+
} as OriginalMessageModifiedExpense,
1191+
};
1192+
1193+
const result = getForReportAction({
1194+
translate: translateLocal,
1195+
reportAction,
1196+
policy: policyRulesPolicy,
1197+
policyTags: undefined,
1198+
currentUserLogin: CURRENT_USER_LOGIN,
1199+
});
1200+
1201+
const expectedResult = `set the tax rate to "" via <a href="${environmentURL}/workspaces/1234/rules">workspace rules</a>`;
1202+
expect(result).toEqual(expectedResult);
1203+
});
1204+
11811205
it('returns the correct text message with two overrides', () => {
11821206
const reportAction = {
11831207
...createRandomReportAction(1),

0 commit comments

Comments
 (0)