Skip to content

Commit ba25c14

Browse files
committed
Fix Xero travel invoicing payable account export
1 parent cd0f74e commit ba25c14

3 files changed

Lines changed: 10 additions & 12 deletions

File tree

src/libs/API/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1192,7 +1192,7 @@ type WriteCommandParameters = {
11921192
[WRITE_COMMANDS.UPDATE_XERO_EXPORT_BILL_DATE]: Parameters.UpdateXeroGenericTypeParams;
11931193
[WRITE_COMMANDS.UPDATE_XERO_EXPORT_EXPORTER]: Parameters.UpdateXeroGenericTypeParams;
11941194
[WRITE_COMMANDS.UPDATE_XERO_EXPORT_NON_REIMBURSABLE_ACCOUNT]: Parameters.UpdateXeroGenericTypeParams;
1195-
[WRITE_COMMANDS.UPDATE_XERO_TRAVEL_INVOICING_PAYABLE_ACCOUNT]: Parameters.UpdateManyPolicyConnectionConfigurationsParams;
1195+
[WRITE_COMMANDS.UPDATE_XERO_TRAVEL_INVOICING_PAYABLE_ACCOUNT]: Parameters.UpdateXeroGenericTypeParams;
11961196
[WRITE_COMMANDS.UPDATE_XERO_SYNC_INVOICE_COLLECTIONS_ACCOUNT_ID]: Parameters.UpdateXeroGenericTypeParams;
11971197
[WRITE_COMMANDS.UPDATE_XERO_SYNC_SYNC_REIMBURSED_REPORTS]: Parameters.UpdateXeroGenericTypeParams;
11981198
[WRITE_COMMANDS.UPDATE_XERO_SYNC_REIMBURSEMENT_ACCOUNT_ID]: Parameters.UpdateXeroGenericTypeParams;

src/libs/actions/connections/Xero.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type {OnyxEntry, OnyxUpdate} from 'react-native-onyx';
44
import Onyx from 'react-native-onyx';
55
import type {ValueOf} from 'type-fest';
66
import * as API from '@libs/API';
7-
import type {ConnectPolicyToAccountingIntegrationParams, UpdateManyPolicyConnectionConfigurationsParams, UpdateXeroGenericTypeParams} from '@libs/API/parameters';
7+
import type {ConnectPolicyToAccountingIntegrationParams, UpdateXeroGenericTypeParams} from '@libs/API/parameters';
88
import type UpdateXeroAccountingMethodParams from '@libs/API/parameters/UpdateXeroAccountingMethodParams';
99
import {READ_COMMANDS, WRITE_COMMANDS} from '@libs/API/types';
1010
import {getCommandURL} from '@libs/ApiUtils';
@@ -497,13 +497,12 @@ function updateXeroExportNonReimbursableAccount(
497497
API.write(WRITE_COMMANDS.UPDATE_XERO_EXPORT_NON_REIMBURSABLE_ACCOUNT, parameters, {optimisticData, failureData, successData});
498498
}
499499

500-
function updateXeroTravelInvoicingPayableAccount(policyID: string, accountID: string, oldAccountID?: string) {
501-
const {optimisticData, failureData, successData} = prepareXeroExportOptimisticData(policyID, CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT, accountID, oldAccountID);
502-
const parameters: UpdateManyPolicyConnectionConfigurationsParams = {
500+
function updateXeroTravelInvoicingPayableAccount(policyID: string, settingValue: string, oldSettingValue?: string) {
501+
const {optimisticData, failureData, successData} = prepareXeroExportOptimisticData(policyID, CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT, settingValue, oldSettingValue);
502+
const parameters: UpdateXeroGenericTypeParams = {
503503
policyID,
504-
connectionName: CONST.POLICY.CONNECTIONS.NAME.XERO,
505-
configUpdate: JSON.stringify({[CONST.XERO_CONFIG.EXPORT]: {[CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT]: accountID}}),
506-
idempotencyKey: CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT,
504+
settingValue,
505+
idempotencyKey: String(CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT),
507506
};
508507
API.write(WRITE_COMMANDS.UPDATE_XERO_TRAVEL_INVOICING_PAYABLE_ACCOUNT, parameters, {optimisticData, failureData, successData});
509508
}

tests/actions/connections/Xero.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,17 @@ describe('actions/connections/Xero', () => {
4242
});
4343

4444
describe('updateXeroTravelInvoicingPayableAccount', () => {
45-
it('writes the UpdateManyPolicyConnectionConfigs command with travelInvoicingPayableAccountID', () => {
45+
it('writes the UpdateXeroTravelInvoicingPayableAccount command with travelInvoicingPayableAccountID', () => {
4646
updateXeroTravelInvoicingPayableAccount(MOCK_POLICY_ID, 'account-123', 'old-account');
4747

4848
const {command} = getFirstWriteCall();
4949
expect(command).toBe(WRITE_COMMANDS.UPDATE_XERO_TRAVEL_INVOICING_PAYABLE_ACCOUNT);
5050

5151
const call = writeSpy.mock.calls.at(0);
52-
const params = call?.[1] as {connectionName: string; configUpdate: string; idempotencyKey: string; policyID: string};
52+
const params = call?.[1] as {idempotencyKey: string; policyID: string; settingValue: string};
5353
expect(params.policyID).toBe(MOCK_POLICY_ID);
54-
expect(params.connectionName).toBe(CONST.POLICY.CONNECTIONS.NAME.XERO);
54+
expect(params.settingValue).toBe('account-123');
5555
expect(params.idempotencyKey).toBe(CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT);
56-
expect(JSON.parse(params.configUpdate)).toEqual({[CONST.XERO_CONFIG.EXPORT]: {[CONST.XERO_CONFIG.TRAVEL_INVOICING_PAYABLE_ACCOUNT]: 'account-123'}});
5756
});
5857

5958
it('merges travelInvoicingPayableAccountID optimistically onto the Xero config', () => {

0 commit comments

Comments
 (0)