diff --git a/src/features/schedule/components/ScheduleDetailsPage.test.tsx b/src/features/schedule/components/ScheduleDetailsPage.test.tsx index 6cc2db81..3b932f70 100644 --- a/src/features/schedule/components/ScheduleDetailsPage.test.tsx +++ b/src/features/schedule/components/ScheduleDetailsPage.test.tsx @@ -60,8 +60,14 @@ vi.mock("@/i18n/resolver.js", () => ({ })); // Mutable for individual test overrides -let mockScheduleDetailsResult: { flights: unknown[]; loading: boolean; error: unknown } = { +let mockScheduleDetailsResult: { + flights: unknown[]; + daysOfFlight: string[]; + loading: boolean; + error: unknown; +} = { flights: [], + daysOfFlight: [], loading: true, error: null, }; @@ -145,7 +151,9 @@ vi.mock("@/features/online-board/components/FlightsMiniList/index.js", () => ({ })); vi.mock("@/features/online-board/components/DayTabs/index.js", () => ({ - DayTabs: () =>
, + DayTabs: ({ availableDates }: { availableDates: string[] }) => ( + + ), })); vi.mock("@/ui/flights/FlightCard.js", () => ({ @@ -187,7 +195,7 @@ const flightId: IScheduleFlightId = { describe("ScheduleDetailsPage breadcrumbs", () => { beforeEach(() => { mockSearchParamsGet = () => null; - mockScheduleDetailsResult = { flights: [], loading: true, error: null }; + mockScheduleDetailsResult = { flights: [], daysOfFlight: [], loading: true, error: null }; }); it("shows 1-item trail when no ?request= param (share-link)", () => { @@ -253,7 +261,7 @@ describe("ScheduleDetailsPage structure (§4.1.16.1 + §4.1.16.2 + §4.1.16.3)", beforeEach(() => { mockSearchParamsGet = () => null; // Reset to loading state (breadcrumb tests rely on this) - mockScheduleDetailsResult = { flights: [], loading: true, error: null }; + mockScheduleDetailsResult = { flights: [], daysOfFlight: [], loading: true, error: null }; // The new ScheduleFlightsMiniList scrolls the highlighted row into // view on mount; JSDOM doesn't ship `scrollIntoView`, so stub it. Element.prototype.scrollIntoView = vi.fn(); @@ -288,6 +296,7 @@ describe("ScheduleDetailsPage structure (§4.1.16.1 + §4.1.16.2 + §4.1.16.3)", }, }, ], + daysOfFlight: ["20260515", "20260516"], loading: false, error: null, }; @@ -333,6 +342,7 @@ describe("ScheduleDetailsPage structure (§4.1.16.1 + §4.1.16.2 + §4.1.16.3)", }, }, ], + daysOfFlight: ["20260515", "20260516"], loading: false, error: null, }; @@ -345,6 +355,9 @@ describe("ScheduleDetailsPage structure (§4.1.16.1 + §4.1.16.2 + §4.1.16.3)", ); // Success state renders DayTabs in stickyContent (Schedule window = +330 days) expect(screen.getByTestId("day-tabs")).toBeTruthy(); + expect(screen.getByTestId("day-tabs").getAttribute("data-available-dates")).toBe( + "20260515,20260516", + ); }); it("4.1.16.1-R4: back link navigates to scheduleHref (success state)", () => { @@ -377,6 +390,7 @@ describe("ScheduleDetailsPage structure (§4.1.16.1 + §4.1.16.2 + §4.1.16.3)", }, }, ], + daysOfFlight: ["20260515", "20260516"], loading: false, error: null, }; diff --git a/src/features/schedule/components/ScheduleDetailsPage.tsx b/src/features/schedule/components/ScheduleDetailsPage.tsx index e2fb633b..5548f06b 100644 --- a/src/features/schedule/components/ScheduleDetailsPage.tsx +++ b/src/features/schedule/components/ScheduleDetailsPage.tsx @@ -95,7 +95,7 @@ export const ScheduleDetailsPage: FC