Накатил человеческий дизайн

This commit is contained in:
mi
2026-07-21 16:01:24 +03:00
parent 9cfc157124
commit 627371b221
35 changed files with 2415 additions and 293 deletions
@@ -26,12 +26,25 @@ test.beforeEach(async ({ page }) => {
test("гостевой экран загружает публичный контент", async ({ page }) => {
await page.goto("/");
await expect(page.getByRole("heading", { name: омощь мигрантам" })).toBeVisible();
await expect(page.getByRole("heading", { name: ривет! Я HAN" })).toBeVisible();
await expect(page.getByText("Добро пожаловать в HAN Chat")).toBeVisible();
await expect(page.getByRole("button", { name: "Как оформить визу?" })).toBeVisible();
await expect(page.getByRole("button", { name: "Голосовое сообщение" })).toHaveCount(0);
await expect(page.getByRole("button", { name: "Прикрепить файл" })).toBeVisible();
await expect(page.getByText("Продление патента через 14 дней")).toHaveCount(0);
await expect(page.getByRole("button", { name: "Связь с оператором" })).toBeEnabled();
await expect(page.getByText("+74950000000")).toHaveCount(0);
await expect(page.getByText(/Гость/)).toBeVisible();
});
test("История открывает текущий единый чат", async ({ page }) => {
await page.goto("/");
await page.getByRole("link", { name: "История" }).click();
await expect(page).toHaveURL(/\/dialogs$/);
await expect(page.getByRole("heading", { name: "Чат" })).toBeVisible();
await expect(page.getByText(/доступен после авторизации/)).toBeVisible();
});
test("первое сообщение требует обязательные согласия", async ({ page }) => {
await page.goto("/");
await page.getByLabel("Сообщение").fill("Здравствуйте");
@@ -40,6 +53,21 @@ test("первое сообщение требует обязательные с
await expect(page.getByRole("button", { name: "Продолжить" })).toBeDisabled();
});
test("Enter отправляет введённое сообщение", async ({ page }) => {
await page.goto("/");
await page.getByLabel("Сообщение").fill("Отправка с клавиатуры");
await page.getByLabel("Сообщение").press("Enter");
await expect(page.getByRole("heading", { name: "Согласия перед входом" })).toBeVisible();
});
test("сообщение ограничено 4000 символами", async ({ page }) => {
await page.goto("/");
await page.getByLabel("Сообщение").fill("а".repeat(4001));
await page.getByRole("button", { name: "Отправить" }).click();
await expect(page.getByRole("alert")).toContainText("Максимум — 4000 символов");
await expect(page.getByRole("heading", { name: "Согласия перед входом" })).toHaveCount(0);
});
test("профиль гостя не делает защищённый запрос", async ({ page }) => {
let protectedCalls = 0;
await page.route("**/api/v1/me", (route) => { protectedCalls++; return route.abort(); });