const { _electron: electron } = require('playwright-core');
const path = require('path');

/**
 * Lance une instance Electron pour les tests
 */
async function launchElectronApp(options = {}) {
  const defaultOptions = {
    args: [path.join(__dirname, '../../../main.js')],
    env: {
      ...process.env,
      NODE_ENV: 'test',
      ELECTRON_ENABLE_LOGGING: process.env.DEBUG === 'true',
      TEST_TYPE: 'e2e'
    },
    timeout: 30000,
    executablePath: process.env.ELECTRON_PATH // Pour les builds packagés
  };

  // Mode headless en CI seulement
  if (process.env.CI === 'true') {
    defaultOptions.env.HEADLESS = 'true';
  }

  const finalOptions = { ...defaultOptions, ...options };
  
  console.log(`🚀 Lancement d'Electron avec options:`, {
    ...finalOptions,
    args: finalOptions.args // Ne pas logger tout l'objet
  });

  return await electron.launch(finalOptions);
}

module.exports = { launchElectronApp };