/**
 * Playwright configuration for Scrying Pool E2E tests
 * 
 * Tests FoundryVTT module in a live browser environment
 * Configuration adaptée pour l'environnement local :
 * - URL: https://localhost:31000
 * - User: gamemaster (pas de mot de passe)
 * - Module déjà installé et monde disponible
 */

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

/**
 * Configuration pour les tests E2E avec FoundryVTT
 * 
 * Environnement :
 * - FoundryVTT v14 avec Scrying Pool installé
 * - Serveur FoundryVTT en cours sur https://localhost:31000
 * - Monde déjà disponible avec utilisateur "gamemaster"
 * - Pas de mot de passe requis
 */
export default defineConfig({
  // timeout global pour les tests Foundry (chargement peut être lent)
  timeout: 60000,
  
  // Nombre de workers - 1 pour éviter les conflits avec Foundry
  workers: 1,
  
  // Répéter les tests échoués
  retries: 2,
  
  // Rapport des tests
  reporter: [
    ['list'],
    ['html', { outputFolder: '_bmad-output/e2e-reports/html', open: 'never' }],
    ['json', { outputFolder: '_bmad-output/e2e-reports/json' }],
  ],
  
  // Capture d'écran et vidéo sur échec
  use: {
    // Accepter les certificats auto-signés (HTTPS local)
    ignoreHTTPSErrors: true,
    
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
    
    // Base URL du serveur FoundryVTT
    baseURL: 'https://localhost:31000',
    
    // Taille de la fenêtre
    viewport: { width: 1920, height: 1080 },
    
    // User agent pour identifier les tests
    userAgent: 'VVM-E2E-Test/1.0',
    
    // Ne pas exécuter en mode headless pour le debugging si nécessaire
    // headless: false,
  },
  
  // Projets - support multi-navigateurs
  projects: [
    {
      name: 'foundry-chromium',
      use: { 
        ...devices['Desktop Chrome'],
        ignoreHTTPSErrors: true,
      },
    },
    {
      name: 'foundry-firefox',
      use: { 
        ...devices['Desktop Firefox'],
        ignoreHTTPSErrors: true,
      },
    },
  ],
  
  // Variables globales pour tous les tests
  globalSetup: './fixtures/foundry-setup.js',
});
