// frontend/playwright.config.ts
import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  testDir: "./playwright",
  // auth/multiuser 는 AUTH_ENABLED=true 전용 → 데모 스위트에서 제외(playwright/auth.config.ts 로 실행)
  testIgnore: ["**/auth.spec.ts", "**/multiuser.spec.ts"],
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  // dev 서버 콜드 컴파일/일시 지연 흡수 (직렬 장기 실행 시 goto 타임아웃 방지)
  timeout: 60_000,
  retries: 1,
  reporter: [["list"]],
  use: {
    baseURL: "http://localhost:31300",
    trace: "on-first-retry",
    navigationTimeout: 45_000,
    actionTimeout: 15_000,
  },
  projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
  webServer: {
    command: "pnpm dev",
    url: "http://localhost:31300",
    reuseExistingServer: !process.env.CI,
    timeout: 120_000,
  },
});
