import { expect, test } from "@playwright/test"; test("waterbody detail preserves confirmed facts and empty activity state", async ({ page }) => { await page.goto("/waterbodies/р-вьюнок"); await expect(page.locator("h1")).toHaveText("р. Вьюнок"); await expect(page.getByText("В карточке источника указано видов рыб: 29.")).toBeVisible(); await expect(page.getByText("Изображений-кандидатов: 2; публикация требует отдельной проверки.")).toBeVisible(); await expect(page.getByText("Свежих подтверждённых видов пока нет.")).toBeVisible(); await expect(page.getByText("Свежих точек пока нет")).toBeVisible(); }); test("unknown waterbody slug has a navigable not-found state", async ({ page }) => { await page.goto("/waterbodies/not-a-real-waterbody"); await expect(page.getByRole("heading", { name: "Водоём не найден" })).toBeVisible(); await expect(page.getByRole("alert")).toContainText("Такого водоёма нет в справочнике"); await expect(page.getByRole("link", { name: "Открыть каталог" })).toHaveAttribute("href", "/waterbodies"); }); test("unknown waterbody/fish pair keeps a clear not-found state", async ({ page }) => { await page.goto("/waterbodies/р-вьюнок/not-a-real-fish"); await expect(page.getByRole("heading", { name: "Данные не найдены" })).toBeVisible(); await expect(page.getByRole("alert")).toContainText("Такого сочетания нет в справочнике"); await expect(page.getByRole("link", { name: "Вернуться на главную" })).toHaveAttribute("href", "/"); });