35 lines
2.1 KiB
TypeScript
35 lines
2.1 KiB
TypeScript
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("в очереди");
|
||
});
|