// 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();
});
