// Configuración Playwright de la suite e2e del WhatsApp Cloud API Mockup. import { defineConfig, devices } from "@playwright/test"; const PUERTO = Number(process.env.WAM_PORT || 4173); const BASE = `http://127.0.0.1:${PUERTO}`; export default defineConfig({ testDir: "./e2e", outputDir: "./test-results", timeout: 45_000, expect: { timeout: 7_000 }, fullyParallel: true, forbidOnly: !!process.env.CI, retries: 1, // tolera algún fallo intermitente por carga con muchos workers // WebKit en Windows se vuelve inestable con muchos workers en paralelo workers: process.env.CI ? 2 : Number(process.env.WAM_WORKERS || 6), reporter: [["list"], ["html", { outputFolder: "playwright-report", open: "never" }]], use: { baseURL: BASE, locale: "es-ES", timezoneId: "America/Mexico_City", trace: "retain-on-failure", screenshot: "only-on-failure", acceptDownloads: true, }, projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"], viewport: { width: 1440, height: 900 } }, grepInvert: /@movil/, }, { name: "webkit", use: { ...devices["Desktop Safari"], viewport: { width: 1440, height: 900 } }, grepInvert: /@movil/, }, { // Proyecto móvil (WebKit, táctil): solo las specs etiquetadas @movil name: "iphone", use: { ...devices["iPhone 15"] }, grep: /@movil/, }, ], webServer: { command: `node serve.mjs ${PUERTO}`, url: `${BASE}/index.html`, reuseExistingServer: !process.env.CI, timeout: 20_000, stdout: "ignore", }, });