import { defineConfig, devices } from "@playwright/test";

/** Dedicated test listener. Production PM2 uses 4350 — do not reuse that port. */
const port = process.env.PLAYWRIGHT_PORT || "4351";
const baseURL = process.env.PLAYWRIGHT_BASE_URL || `http://127.0.0.1:${port}`;

export default defineConfig({
  testDir: "./test/process-test",
  fullyParallel: false,
  workers: 1,
  timeout: 90_000,
  expect: { timeout: 20_000 },
  reporter: [["list"]],
  use: {
    baseURL,
    trace: "on-first-retry",
    launchOptions: {
      args: ["--disable-dev-shm-usage", "--disable-gpu"],
    },
  },
  webServer: {
    command: `npx next dev --turbopack --hostname 127.0.0.1 --port ${port}`,
    url: baseURL,
    reuseExistingServer: false,
    timeout: 120_000,
    env: {
      ...process.env,
      DISABLE_CHAT_MODEL: "1",
      OPENAI_API_KEY: "",
    },
  },
  projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
});
