// frontend/playwright/notify.spec.ts — 알림 트리아지 E2E
// 백엔드는 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("트리아지 기본 + 이유 칩", async ({ page }) => {
  await page.goto("/notifications");
  await expect(page.getByText("수아님 — 분기 리포트 피드백")).toBeVisible();
  await expect(page.getByText("VIP 발신자")).toBeVisible(); // 이유 칩
  await expect(page.getByText(/오늘 47건 도착/)).toBeVisible(); // eyebrow
});

test("나중에 미루기 → '내가 미룸' 이유 칩", async ({ page }) => {
  await page.goto("/notifications");
  await page
    .locator(".nt-row", { hasText: "수아님 — 분기 리포트 피드백" })
    .getByRole("button", { name: "나중에" })
    .click();
  await page.locator(".nt-tab", { hasText: "나중에" }).click();
  await expect(page.getByText("내가 미룸")).toBeVisible();
});

test("되돌리기 → '되돌림' 이유 칩", async ({ page }) => {
  await page.goto("/notifications");
  await page.locator(".nt-tab", { hasText: "아리가 처리" }).click();
  await page
    .locator(".nt-row", { hasText: "회의 초대 자동 수락" })
    .getByRole("button", { name: "되돌리기" })
    .click();
  await page.locator(".nt-tab", { hasText: "지금" }).click();
  await expect(page.getByText("되돌림")).toBeVisible();
});

test("발신자 규칙 뷰", async ({ page }) => {
  await page.goto("/notifications");
  await page.getByRole("button", { name: "발신자 규칙" }).click();
  await expect(page.getByText("수아님")).toBeVisible();
  await expect(page.getByText("항상 즉시")).toBeVisible();
});

test("집중 보호 토글", async ({ page }) => {
  await page.goto("/notifications");
  await page.getByRole("button", { name: "집중 보호 · 묶음" }).click();
  await expect(page.getByText(/딥 워크 보호/).first()).toBeVisible();
});
