You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.4 KiB
TypeScript
55 lines
2.4 KiB
TypeScript
// frontend/playwright/dashboard.spec.ts
|
|
import { expect, test } from "@playwright/test";
|
|
import { resetSeed } from "./fixtures/seed-reset";
|
|
|
|
test.describe.configure({ mode: "serial" });
|
|
|
|
// 깨끗한 시드에서 시작(앞선 spec 의 변경과 격리).
|
|
test.beforeAll(resetSeed);
|
|
|
|
test("로드 → 집계가 시드 기준으로 표시", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await expect(page.getByText("아리 브리핑")).toBeVisible();
|
|
await expect(page.locator(".brief b")).toHaveText("분기 리포트");
|
|
await expect(page.getByText("아리 결재함")).toBeVisible();
|
|
await expect(page.getByText("대기 3건")).toBeVisible();
|
|
await expect(page.getByText("현우님께 회신 초안이 준비됐어요")).toBeVisible();
|
|
await expect(page.locator(".ev")).toHaveCount(4);
|
|
await expect(page.getByText("곧", { exact: true })).toBeVisible();
|
|
await expect(page.getByRole("progressbar")).toHaveCount(3);
|
|
});
|
|
|
|
test("인박스 카드 '새로 적기' → /inbox", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await page.getByRole("link", { name: /새로 적기/ }).click();
|
|
await expect(page).toHaveURL(/\/inbox$/);
|
|
});
|
|
|
|
test("결재함 카드 CTA → placeholder(준비 중)", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await page.getByRole("link", { name: /결재함에서 승인하기/ }).click();
|
|
await expect(page.getByText(/준비 중/)).toBeVisible();
|
|
});
|
|
|
|
test("작업 요약 항목 클릭 → /tasks?task= 딥링크", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await page.locator(".task-title", { hasText: "분기 리포트 초안 마무리" }).click();
|
|
await expect(page).toHaveURL(/\/tasks\?task=/);
|
|
});
|
|
|
|
test("자연어 명령 입력 → 캡처 후 /inbox 이동", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
const input = page.getByLabel("아리에게 명령 입력");
|
|
await input.fill("수요일 11시 자전거 수리 맡기기");
|
|
await page.getByLabel("보내기").click();
|
|
await expect(page).toHaveURL(/\/inbox$/);
|
|
await expect(page.locator(".sb-raw", { hasText: "수요일 11시 자전거 수리 맡기기" }).first()).toBeVisible();
|
|
});
|
|
|
|
test("다크 테마 토글 후에도 렌더 정상", async ({ page }) => {
|
|
await page.goto("/dashboard");
|
|
await page.getByLabel("테마 전환").click();
|
|
await expect(page.locator("html")).toHaveAttribute("data-theme", "dark");
|
|
await expect(page.getByText("아리 브리핑")).toBeVisible();
|
|
});
|