// @ts-check
const { defineConfig, devices } = require('@playwright/test');

// Point at a running instance. The app's docker container serves on :7890.
const BASE_URL = process.env.BASE_URL || 'http://localhost:7890';

module.exports = defineConfig({
  testDir: './tests',
  timeout: 60_000,
  expect: { timeout: 10_000 },
  // The app talks to a single uvicorn backend — running tests concurrently overwhelms
  // it and makes navigation flaky, so keep it serial.
  fullyParallel: false,
  workers: 1,
  retries: process.env.CI ? 1 : 0,
  reporter: process.env.CI ? 'github' : 'list',
  use: {
    baseURL: BASE_URL,
    navigationTimeout: 45_000,
    actionTimeout: 15_000,
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
  },
  projects: [
    { name: 'desktop', use: { ...devices['Desktop Chrome'] } },
    // iPhone profile — guards the mobile-stability work
    { name: 'iphone', use: { ...devices['iPhone 13'] } },
  ],
});
