From 6e79e93f1342bee9f21898f2ac148239b52c59e7 Mon Sep 17 00:00:00 2001 From: Rodrigo Lino da Costa Date: Wed, 16 Sep 2026 19:26:23 -0300 Subject: [PATCH] Hide cancelled upcoming travel reservations --- .../useUpcomingTravelReservations.ts | 3 +++ .../useUpcomingTravelReservations.test.ts | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/pages/home/UpcomingTravelSection/useUpcomingTravelReservations.ts b/src/pages/home/UpcomingTravelSection/useUpcomingTravelReservations.ts index 20419343c6e8..20668d976b20 100644 --- a/src/pages/home/UpcomingTravelSection/useUpcomingTravelReservations.ts +++ b/src/pages/home/UpcomingTravelSection/useUpcomingTravelReservations.ts @@ -43,6 +43,9 @@ function useUpcomingTravelReservations(): UpcomingReservation[] { } const reservations = getReservationsFromTripReport(report, tripReportNameValuePairs); for (const resData of reservations) { + if (resData.isCancelled) { + continue; + } const startDate = new Date(resData.reservation.start.date); if (Number.isNaN(startDate.getTime())) { continue; diff --git a/tests/unit/hooks/useUpcomingTravelReservations.test.ts b/tests/unit/hooks/useUpcomingTravelReservations.test.ts index f6159e66343f..16581fee8768 100644 --- a/tests/unit/hooks/useUpcomingTravelReservations.test.ts +++ b/tests/unit/hooks/useUpcomingTravelReservations.test.ts @@ -527,6 +527,25 @@ describe('useUpcomingTravelReservations', () => { expect(result.current.at(0)?.reportID).toBe('102'); }); + it('should exclude cancelled reservations', async () => { + const cancelledFlight = makeAirPnr('PNR_CANCELLED', daysFromNow(3), daysFromNow(3, 15)); + const firstLeg = cancelledFlight.data.airPnr?.legs.at(0); + if (firstLeg) { + firstLeg.legStatus = CONST.LEG_STATUS.CANCELLED; + } + const tripRoom = makeTripRoomReport('103'); + + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT}103`, tripRoom); + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}103`, makeTripRoomReportNameValuePairs('103', [cancelledFlight])); + await waitForBatchedUpdates(); + + const {result} = renderHook(() => useUpcomingTravelReservations()); + + await waitFor(() => { + expect(result.current).toEqual([]); + }); + }); + it('should exclude reservation that departed yesterday', async () => { const pastFlight = makeAirPnr('PNR_JUST_PASSED', daysFromNow(-1, 22), daysFromNow(-1, 23)); const upcomingFlight = makeAirPnr('PNR_LATER_TODAY', daysFromNow(1), daysFromNow(1, 15));