import { expect, test } from "@playwright/test"; import { agentServeRefresh, login } from "./hub.ts"; test("«Обзор»: / → /app/?project=…, две карточки модулей, список пакетов", async ({ page }) => { await login(page, "/app/"); await expect(page).toHaveURL(/\/app\/?\?project=AWPCA$/); await expect(page.getByTestId("page-overview")).toBeVisible(); await expect(page.getByRole("heading", { level: 1, name: "Обзор" })).toBeVisible(); const cards = page.locator(".overview-card"); await expect(cards).toHaveCount(2); await expect(page.getByRole("region", { name: "Jira" })).toBeVisible(); await expect(page.getByRole("region", { name: "Вики" })).toBeVisible(); await expect(page.getByRole("heading", { name: "Последние пакеты проекта" })).toBeVisible(); }); test("«Обзор»: «Обновить из Jira» ставит пакет и доводит до конца", async ({ page }) => { await login(page, "/app/"); const card = page.getByRole("region", { name: "Jira" }); await card.getByRole("button", { name: "Обновить из Jira" }).click(); await expect(card.getByRole("status")).toContainText(/пакет #\d+/); await agentServeRefresh(); await expect(card.getByRole("status")).toContainText(/выполнен/, { timeout: 15_000 }); }); test("«Обзор»: пакет проекта («Обновить вики») появляется в «Последних пакетах проекта»", async ({ page }) => { await login(page, "/app/"); await expect(page.getByText("Пакетов пока не было.")).toBeVisible(); await page.getByRole("region", { name: "Вики" }).getByRole("button", { name: "Обновить вики" }).click(); // список пакетов опрашивается раз в 15 с; агента wiki в тестовом хабе нет — пакет остаётся в очереди const row = page.locator("table.overview-table tbody tr").first(); await expect(row).toBeVisible({ timeout: 25_000 }); await expect(row).toContainText("Вики"); await expect(row).toContainText("в очереди"); });