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")}
+
+
+