// frontend/playwright/mail.spec.ts — 메일 E2E (extract→작업 / 회신→결재함)
// 백엔드는 ARI_ALLOW_TEST_RESET=1 LLM_PROVIDER=heuristic 로 기동 가정.
import { expect, test } from "@playwright/test";
import { resetSeed } from "./fixtures/seed-reset";

test.describe.configure({ mode: "serial" });

test.beforeEach(async () => {
  await resetSeed();
});

test("메일 ai 추출 → 작업 페이지 왕복", async ({ page }) => {
  await page.goto("/mail");
  await page.locator(".mrow", { hasText: "온보딩 시안 v3" }).first().click();
  await expect(page.getByText("아리가 분석했어요")).toBeVisible();
  await page.getByRole("button", { name: "작업", exact: true }).first().click();
  await expect(page.getByText("작업에 추가했어요")).toBeVisible(); // 토스트
  await page.goto("/tasks");
  await expect(page.getByText("온보딩 시안 v3 피드백 정리").first()).toBeVisible();
});

test("회신 초안 선택 → 결재함 대기", async ({ page }) => {
  await page.goto("/mail");
  await page.locator(".mrow", { hasText: "온보딩 시안 v3" }).first().click();
  await page.locator(".rep", { hasText: "금요일까지 피드백 드릴게요" }).click();
  await page.locator(".cp-send").click();
  await expect(page.getByText("결재함에서 확인하세요")).toBeVisible();
});

test("m7(빈 ai) → 요약만, AI pill 없음", async ({ page }) => {
  await page.goto("/mail");
  await page.locator(".mrow", { hasText: "ChatGPT Plus" }).first().click();
  await expect(page.getByText("아리가 분석했어요")).toBeVisible();
  // 빈 ai → 작업/일정 추가 버튼 없음
  await expect(page.getByRole("button", { name: "작업", exact: true })).toHaveCount(0);
});

test("계정 필터 — 사이드(side) 전환", async ({ page }) => {
  await page.goto("/mail");
  await page.getByText("사이드", { exact: false }).first().click();
  await expect(page.locator(".mrow", { hasText: "수요 독서모임" }).first()).toBeVisible();
});
