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.
36 lines
1.7 KiB
TypeScript
36 lines
1.7 KiB
TypeScript
// frontend/playwright/tasks.spec.ts
|
|
// phase-16+: 작업 mock 시드 제거 → 빈 칸반에서 시작. UI 로 만들 수 있는 흐름만 검증.
|
|
import { expect, test } from "@playwright/test";
|
|
import { resetSeed } from "./fixtures/seed-reset";
|
|
|
|
test.describe.configure({ mode: "serial" });
|
|
|
|
test.beforeEach(resetSeed);
|
|
|
|
test("초기 진입: 업무 스코프 + 칸반 5컬럼(빈) + 리스크 레이더", async ({ page }) => {
|
|
await page.goto("/tasks");
|
|
await expect(page.locator(".tree-row.folder.on .tree-name")).toHaveText("업무");
|
|
await expect(page.locator(".kboard .kcol")).toHaveCount(5);
|
|
await expect(page.locator(".kcard")).toHaveCount(0); // 작업 시드 제거 → 빈 보드
|
|
// 리스크 레이더는 위험이 있을 때만 렌더(빈 보드 → 없음)
|
|
await expect(page.locator(".rradar")).toHaveCount(0);
|
|
});
|
|
|
|
test("뷰 전환 칸반 ↔ 리스트", async ({ page }) => {
|
|
await page.goto("/tasks");
|
|
await page.locator(".view-seg button", { hasText: "리스트" }).click();
|
|
await expect(page.locator(".lgroups")).toBeVisible();
|
|
await page.locator(".view-seg button", { hasText: "칸반" }).click();
|
|
await expect(page.locator(".kboard")).toBeVisible();
|
|
});
|
|
|
|
test("새 프로젝트 생성 → 서버 영속(새로고침 유지)", async ({ page }) => {
|
|
await page.goto("/tasks");
|
|
await page.locator(".tree-add", { hasText: "새 프로젝트" }).first().click();
|
|
await page.locator(".tree-addrow input").fill("신규 프로젝트 E2E");
|
|
await page.locator(".tree-addrow input").press("Enter");
|
|
await expect(page.locator(".tree-name", { hasText: "신규 프로젝트 E2E" })).toBeVisible();
|
|
await page.reload();
|
|
await expect(page.locator(".tree-name", { hasText: "신규 프로젝트 E2E" })).toBeVisible();
|
|
});
|