From 89d7eb330308504aec7c4c501c8fa73411d136a1 Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 11:13:19 -0600 Subject: [PATCH 1/6] Add an enhanced mock for ReportUtils to fix tests --- tests/perf-test/OptimisticReportNames.perf-test.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/perf-test/OptimisticReportNames.perf-test.ts b/tests/perf-test/OptimisticReportNames.perf-test.ts index 4c6516ca19b7..f032237c3e8a 100644 --- a/tests/perf-test/OptimisticReportNames.perf-test.ts +++ b/tests/perf-test/OptimisticReportNames.perf-test.ts @@ -12,7 +12,11 @@ import {createRandomReport} from '../utils/collections/reports'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; // Mock dependencies -jest.mock('@libs/ReportUtils'); +jest.mock('@libs/ReportUtils', () => ({ + ...jest.requireActual('@libs/ReportUtils'), + isExpenseReport: jest.fn(), + getTitleReportField: jest.fn(), +})); jest.mock('@libs/Performance', () => ({ markStart: jest.fn(), markEnd: jest.fn(), From 61e3368f14d9dcb93e9c8ecf6e6f800142e1fdf7 Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 11:34:41 -0600 Subject: [PATCH 2/6] Fix types --- tests/perf-test/OptimisticReportNames.perf-test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/perf-test/OptimisticReportNames.perf-test.ts b/tests/perf-test/OptimisticReportNames.perf-test.ts index f032237c3e8a..86b75655c0c9 100644 --- a/tests/perf-test/OptimisticReportNames.perf-test.ts +++ b/tests/perf-test/OptimisticReportNames.perf-test.ts @@ -13,7 +13,7 @@ import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; // Mock dependencies jest.mock('@libs/ReportUtils', () => ({ - ...jest.requireActual('@libs/ReportUtils'), + ...jest.requireActual('@libs/ReportUtils'), isExpenseReport: jest.fn(), getTitleReportField: jest.fn(), })); From 007f63b4bc2a1583c47c70240d9a5425f0ec566c Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 11:35:10 -0600 Subject: [PATCH 3/6] Remove comment to trigger tests --- src/libs/actions/App.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/actions/App.ts b/src/libs/actions/App.ts index 09e02ec185d8..fc2345b1179d 100644 --- a/src/libs/actions/App.ts +++ b/src/libs/actions/App.ts @@ -1,4 +1,3 @@ -// Issue - https://github.com/Expensify/App/issues/26719 import {Str} from 'expensify-common'; import type {AppStateStatus} from 'react-native'; import {AppState} from 'react-native'; From 8ab557112c01825762f82fb7cb767b0464a9a7be Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 12:07:52 -0600 Subject: [PATCH 4/6] Remove unrelated diff --- src/libs/actions/App.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/actions/App.ts b/src/libs/actions/App.ts index fc2345b1179d..09e02ec185d8 100644 --- a/src/libs/actions/App.ts +++ b/src/libs/actions/App.ts @@ -1,3 +1,4 @@ +// Issue - https://github.com/Expensify/App/issues/26719 import {Str} from 'expensify-common'; import type {AppStateStatus} from 'react-native'; import {AppState} from 'react-native'; From 5aa82c6b5accf629d30ab77b72c1fbecbaf1bc2c Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 12:29:30 -0600 Subject: [PATCH 5/6] Add comment describing mock --- tests/perf-test/OptimisticReportNames.perf-test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/perf-test/OptimisticReportNames.perf-test.ts b/tests/perf-test/OptimisticReportNames.perf-test.ts index 86b75655c0c9..15130072bde8 100644 --- a/tests/perf-test/OptimisticReportNames.perf-test.ts +++ b/tests/perf-test/OptimisticReportNames.perf-test.ts @@ -12,6 +12,7 @@ import {createRandomReport} from '../utils/collections/reports'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; // Mock dependencies +// Partial mock preserves parseReportRouteParams and other exports that are used by Report.ts's dependencies jest.mock('@libs/ReportUtils', () => ({ ...jest.requireActual('@libs/ReportUtils'), isExpenseReport: jest.fn(), From 8558ca3a58de7511df42b223b1aa102900354061 Mon Sep 17 00:00:00 2001 From: Andrew Gable Date: Tue, 19 Aug 2025 13:45:24 -0600 Subject: [PATCH 6/6] Clean up code comments even more --- tests/perf-test/OptimisticReportNames.perf-test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/perf-test/OptimisticReportNames.perf-test.ts b/tests/perf-test/OptimisticReportNames.perf-test.ts index 15130072bde8..d879fcc6183a 100644 --- a/tests/perf-test/OptimisticReportNames.perf-test.ts +++ b/tests/perf-test/OptimisticReportNames.perf-test.ts @@ -12,9 +12,11 @@ import {createRandomReport} from '../utils/collections/reports'; import waitForBatchedUpdates from '../utils/waitForBatchedUpdates'; // Mock dependencies -// Partial mock preserves parseReportRouteParams and other exports that are used by Report.ts's dependencies jest.mock('@libs/ReportUtils', () => ({ + // jest.requireActual is necessary to include multi-layered module imports (eg. Report.ts has processReportIDDeeplink() which uses parseReportRouteParams() imported from getReportIDFromUrl.ts) + // Without jest.requireActual, parseReportRouteParams would be undefined, causing the test to fail. ...jest.requireActual('@libs/ReportUtils'), + // These methods are mocked below in the beforeAll function to return specific values isExpenseReport: jest.fn(), getTitleReportField: jest.fn(), }));