diff --git a/src/features/online-board/components/OnlineBoardStartPage.test.tsx b/src/features/online-board/components/OnlineBoardStartPage.test.tsx index 011859b4..19fd8d4f 100644 --- a/src/features/online-board/components/OnlineBoardStartPage.test.tsx +++ b/src/features/online-board/components/OnlineBoardStartPage.test.tsx @@ -189,6 +189,46 @@ describe("OnlineBoardStartPage", () => { expect(screen.getByText("BOARD.BOARD-START-TITLE4")).toBeTruthy(); }); + // --------------------------------------------------------------------------- + // TZ §4.1.6: start-page info section per TZ Table 8 + // --------------------------------------------------------------------------- + + describe("4.1.6: start-page info section per TZ Table 8", () => { + it("4.1.6-R-info-heading: renders 'Что такое Онлайн-табло...' heading", () => { + render(); + expect(screen.getByText("BOARD.BOARD-START")).toBeTruthy(); + }); + + it("4.1.6-R-info-block-1: renders 'Актуальная информация' block with description", () => { + render(); + expect(screen.getByText("BOARD.BOARD-START-TITLE1")).toBeTruthy(); + expect(screen.getByText("BOARD.BOARD-START-TITLE1-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.6-R-info-block-2: renders 'Информация об услугах' block with description", () => { + render(); + expect(screen.getByText("BOARD.BOARD-START-TITLE2")).toBeTruthy(); + expect(screen.getByText("BOARD.BOARD-START-TITLE2-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.6-R-info-block-3: renders 'Купить билет' block with description", () => { + render(); + expect(screen.getByText("BOARD.BOARD-START-TITLE3")).toBeTruthy(); + expect(screen.getByText("BOARD.BOARD-START-TITLE3-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.6-R-info-block-4: renders 'Расписание' info block with description", () => { + render(); + expect(screen.getByText("BOARD.BOARD-START-TITLE4")).toBeTruthy(); + expect(screen.getByText("BOARD.BOARD-START-TITLE4-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.6-R-popular-heading: renders 'Популярные разделы' via PopularRequestsPanel", () => { + render(); + expect(screen.getByTestId("popular-requests")).toBeTruthy(); + }); + }); + it("renders the filter component", () => { render(); expect(screen.getByTestId("flight-filter")).toBeTruthy(); diff --git a/src/features/schedule/components/ScheduleStartPage.test.tsx b/src/features/schedule/components/ScheduleStartPage.test.tsx index 21d7a3df..0481f60d 100644 --- a/src/features/schedule/components/ScheduleStartPage.test.tsx +++ b/src/features/schedule/components/ScheduleStartPage.test.tsx @@ -135,6 +135,58 @@ describe("ScheduleStartPage", () => { expect(screen.getByTestId("schedule-start")).toBeTruthy(); }); + // --------------------------------------------------------------------------- + // TZ §4.1.7: start-page info sections per TZ Table 9 + // --------------------------------------------------------------------------- + + describe("4.1.7: start-page info sections per TZ Table 9", () => { + it("4.1.7-R-info-heading-1: renders 'Как пользоваться расписанием?' heading", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-1a: renders 'Маршрут' block with description", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE1")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE1-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-1b: renders 'Дата вылета' block with description", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE2")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE2-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-1c: renders 'Время вылета' block with description", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE3")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE3-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-1d: renders 'Обратные рейсы' block with description", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE4")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE4-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-2a: renders 'Купить билет' capabilities block (TITLE5)", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE5")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE5-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-info-block-2b: renders 'Расписание' capabilities block (TITLE6)", () => { + render(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE6")).toBeTruthy(); + expect(screen.getByText("SCHEDULE.SCHEDULE-START-TITLE6-DESCRIPTION")).toBeTruthy(); + }); + + it("4.1.7-R-popular: renders PopularRequestsPanel for request handling", () => { + render(); + expect(screen.getByTestId("popular-requests")).toBeTruthy(); + }); + }); + it("4.1.5-S1: one-way Route click prefills current ISO week dates + no return", () => { // 2026-05-15 (Fri) → week Mon 2026-05-11 … Sun 2026-05-17 render(); diff --git a/src/features/schedule/components/ScheduleStartPage.tsx b/src/features/schedule/components/ScheduleStartPage.tsx index 22639aad..01327868 100644 --- a/src/features/schedule/components/ScheduleStartPage.tsx +++ b/src/features/schedule/components/ScheduleStartPage.tsx @@ -571,6 +571,24 @@ export const ScheduleStartPage: FC = () => { +

{t("SCHEDULE.POPULAR-CHAPTERS")}

+ +
+
+ {t("SCHEDULE.SCHEDULE-START-TITLE5")} +
+ {t("SCHEDULE.SCHEDULE-START-TITLE5-DESCRIPTION")} +
+
+ +
+ {t("SCHEDULE.SCHEDULE-START-TITLE6")} +
+ {t("SCHEDULE.SCHEDULE-START-TITLE6-DESCRIPTION")} +
+
+
+