Skip to content

Commit e194978

Browse files
authored
Merge pull request Expensify#87957 from DylanDylann/refactor-split-distance-creation
refactor: move split/distance creation functions to IOU/Split.ts
2 parents c07f8e4 + 84de62a commit e194978

9 files changed

Lines changed: 1505 additions & 1753 deletions

File tree

src/libs/actions/IOU/Duplicate.ts

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,13 @@ import type * as OnyxTypes from '@src/types/onyx';
4343
import type {Attendee, Participant} from '@src/types/onyx/IOU';
4444
import type {CurrentUserPersonalDetails} from '@src/types/onyx/PersonalDetails';
4545
import type {WaypointCollection} from '@src/types/onyx/Transaction';
46-
import type {CreateDistanceRequestInformation, RequestMoneyInformation} from '.';
47-
import {
48-
createDistanceRequest,
49-
getAllReportActionsFromIOU,
50-
getAllReports,
51-
getAllTransactions,
52-
getAllTransactionViolations,
53-
getCurrentUserEmail,
54-
getMoneyRequestParticipantsFromReport,
55-
getUserAccountID,
56-
} from '.';
46+
import type {RequestMoneyInformation} from '.';
47+
import {getAllReportActionsFromIOU, getAllReports, getAllTransactions, getAllTransactionViolations, getCurrentUserEmail, getMoneyRequestParticipantsFromReport, getUserAccountID} from '.';
5748
import {getCleanUpTransactionThreadReportOnyxData} from './DeleteMoneyRequest';
5849
import type {PerDiemExpenseInformation} from './PerDiem';
5950
import {submitPerDiemExpense} from './PerDiem';
51+
import type {CreateDistanceRequestInformation} from './Split';
52+
import {createDistanceRequest} from './Split';
6053
import type {CreateTrackExpenseParams} from './TrackExpense';
6154
import {requestMoney, trackExpense} from './TrackExpense';
6255

src/libs/actions/IOU/MoneyRequest.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import type {Unit} from '@src/types/onyx/Policy';
4141
import type {Receipt, WaypointCollection} from '@src/types/onyx/Transaction';
4242
import type {GpsPoint} from './index';
4343
import {
44-
createDistanceRequest,
4544
getMoneyRequestParticipantsFromReport,
4645
setCustomUnitRateID,
4746
setMoneyRequestDistance,
@@ -51,7 +50,7 @@ import {
5150
setMoneyRequestPendingFields,
5251
setMultipleMoneyRequestParticipantsFromReport,
5352
} from './index';
54-
import {resetSplitShares, startSplitBill} from './Split';
53+
import {createDistanceRequest, resetSplitShares, startSplitBill} from './Split';
5554
import {requestMoney, trackExpense} from './TrackExpense';
5655

5756
type CreateTransactionParams = {

src/libs/actions/IOU/Split.ts

Lines changed: 984 additions & 7 deletions
Large diffs are not rendered by default.

src/libs/actions/IOU/index.ts

Lines changed: 7 additions & 967 deletions
Large diffs are not rendered by default.

src/pages/iou/request/step/confirmation/useExpenseSubmission.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@ import {
3636
isManualDistanceRequest as isManualDistanceRequestTransactionUtils,
3737
} from '@libs/TransactionUtils';
3838
import type {GpsPoint} from '@userActions/IOU';
39-
import {createDistanceRequest as createDistanceRequestIOUActions} from '@userActions/IOU';
4039
import {submitPerDiemExpenseForSelfDM, submitPerDiemExpense as submitPerDiemExpenseIOUActions} from '@userActions/IOU/PerDiem';
4140
import {getReceiverType, sendInvoice} from '@userActions/IOU/SendInvoice';
4241
import {sendMoneyElsewhere, sendMoneyWithWallet} from '@userActions/IOU/SendMoney';
43-
import {splitBill, splitBillAndOpenReport, startSplitBill} from '@userActions/IOU/Split';
42+
import {createDistanceRequest as createDistanceRequestIOUActions, splitBill, splitBillAndOpenReport, startSplitBill} from '@userActions/IOU/Split';
4443
import {requestMoney as requestMoneyIOUActions, trackExpense as trackExpenseIOUActions} from '@userActions/IOU/TrackExpense';
4544
import CONST from '@src/CONST';
4645
import ONYXKEYS from '@src/ONYXKEYS';

tests/actions/IOU/MoneyRequestTest.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import ROUTES from '@src/ROUTES';
1313
import type {Policy, PolicyTagLists, QuickAction, RecentWaypoint} from '@src/types/onyx';
1414
import type {Participant} from '@src/types/onyx/IOU';
1515
import type {SplitShares} from '@src/types/onyx/Transaction';
16-
import * as IOU from '../../../src/libs/actions/IOU';
16+
import type * as IOU from '../../../src/libs/actions/IOU';
1717
import * as Split from '../../../src/libs/actions/IOU/Split';
1818
import * as TrackExpense from '../../../src/libs/actions/IOU/TrackExpense';
1919
import DistanceRequestUtils from '../../../src/libs/DistanceRequestUtils';
@@ -29,7 +29,6 @@ jest.mock('@libs/actions/IOU', () => {
2929
const actualNav = jest.requireActual<typeof IOU>('@libs/actions/IOU');
3030
return {
3131
...actualNav,
32-
createDistanceRequest: jest.fn(),
3332
};
3433
});
3534

@@ -46,6 +45,7 @@ jest.mock('@libs/actions/IOU/Split', () => {
4645
const actualSplit = jest.requireActual<typeof Split>('@libs/actions/IOU/Split');
4746
return {
4847
...actualSplit,
48+
createDistanceRequest: jest.fn(),
4949
startSplitBill: jest.fn(),
5050
resetSplitShares: jest.fn(),
5151
};
@@ -1215,7 +1215,7 @@ describe('MoneyRequest', () => {
12151215
});
12161216

12171217
// The function must return after trackExpense and not call createDistanceRequest
1218-
expect(IOU.createDistanceRequest).not.toHaveBeenCalled();
1218+
expect(Split.createDistanceRequest).not.toHaveBeenCalled();
12191219
});
12201220

12211221
it('should call trackExpense for TRACK iouType with valid waypoints when not from manual distance step and skipping confirmation', async () => {
@@ -1319,7 +1319,7 @@ describe('MoneyRequest', () => {
13191319
draftTransactionIDs: [baseParams.transactionID],
13201320
});
13211321

1322-
expect(IOU.createDistanceRequest).toHaveBeenCalledWith(
1322+
expect(Split.createDistanceRequest).toHaveBeenCalledWith(
13231323
expect.objectContaining({
13241324
report: baseParams.report,
13251325
// participants: getParticipantsForTest(),
@@ -1358,7 +1358,7 @@ describe('MoneyRequest', () => {
13581358
draftTransactionIDs: [baseParams.transactionID],
13591359
});
13601360

1361-
expect(IOU.createDistanceRequest).toHaveBeenCalledWith(
1361+
expect(Split.createDistanceRequest).toHaveBeenCalledWith(
13621362
expect.objectContaining({
13631363
report: baseParams.report,
13641364
// participants: getParticipantsForTest(),

0 commit comments

Comments
 (0)