import { defineConfig } from '@playwright/test'; /** * Dos servidores y dos proyectos, porque son dos aplicaciones. * * El sitio en 4173 y el panel en 4174. Cada proyecto pone su `baseURL`, así que * una prueba del panel no puede pedir por accidente una página del sitio ni al * revés: es la misma separación que en producción, donde son dos dominios. */ const comun = { /* * WebGL por software. El Chromium de las pruebas no trae aceleración, y sin * esto el fondo animado de la portada no se podría comprobar: solo se vería * su reserva, que es justo lo contrario de lo que hay que probar. */ launchOptions: { args: ['--use-gl=swiftshader', '--enable-unsafe-swiftshader'] } }; export default defineConfig({ testDir: 'e2e', testMatch: '**/*.e2e.{ts,js}', projects: [ { name: 'sitio', testIgnore: '**/panel.e2e.ts', use: { ...comun, baseURL: 'http://localhost:4173' } }, { name: 'panel', testMatch: '**/panel.e2e.ts', use: { ...comun, baseURL: 'http://localhost:4174' } } ], webServer: [ { // Los builds van aparte, en `npm run test:e2e`: en Windows el empaquetador // sale con SIGSEGV de forma intermitente aunque el bundle esté bien, y // eso tumbaba el arranque del servidor. Lo explica scripts/construir.mjs. command: 'npm run preview', port: 4173, timeout: 180_000, reuseExistingServer: !process.env.CI }, { command: 'npm run preview:panel', port: 4174, timeout: 180_000, reuseExistingServer: !process.env.CI } ] });