import { defineConfig } from '@playwright/test';

/**
 * E2E-Konfiguration für die echte Electron-Anwendung.
 *
 * Voraussetzung: `npm run build` – die Tests starten `out/main/index.js`,
 * nicht den Dev-Server. Damit wird genau der Code geprüft, der auch
 * ausgeliefert wird (inklusive der strengen Produktions-CSP).
 */
export default defineConfig({
  testDir: './e2e',
  testMatch: '**/*.spec.ts',

  // Electron-Instanzen teilen sich Nutzerdaten – deshalb strikt seriell.
  fullyParallel: false,
  workers: 1,

  forbidOnly: Boolean(process.env['CI']),
  retries: process.env['CI'] ? 1 : 0,
  timeout: 60_000,
  expect: { timeout: 10_000 },

  reporter: process.env['CI'] ? [['list'], ['html', { open: 'never' }]] : [['list']],

  use: {
    trace: 'retain-on-failure',
  },
});
