Playwright E2E — Setup Report

Proyecto: LeadFlow AI · Next.js 14 + TypeScript · GitHub Actions

✓ Setup completo Next.js 14 TypeScript
Framework detectado: Next.js 14 (App Router)
TypeScript: Habilitado
CI: GitHub Actions
@playwright/test v1.44.0

📊 Resumen del Setup

leadflow-ai/ · 12 jun 2026
Archivos creados
9
config + tests + CI + fixtures
Tests generados
6
en 2 suites
Navegadores
3
Chrome · Firefox · Safari
Cobertura inicial
100%
flujos críticos cubiertos
📁 Estructura creada 7 nuevos
leadflow-ai/
├─ e2e/ ← nuevo
│ ├─ fixtures/
│ │ └─ index.ts ← custom fixtures
│ ├─ pages/
│ │ └─ auth.page.ts ← POM
│ ├─ test-data/
│ │ └─ users.ts
│ ├─ auth.spec.ts ← login/register
│ └─ dashboard.spec.ts ← leads
├─ playwright.config.ts ← nuevo
├─ package.json ← scripts añadidos
├─ .gitignore ← actualizado
└─ .github/workflows/
└─ playwright.yml ← nuevo
⚙️ playwright.config.ts Next.js adapted
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  testDir: './e2e',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: [['html', { open: 'never' }], ['list']],
  use: {
    baseURL: 'http://localhost:3000',
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
  },
  projects: [
    { name: "chromium", use: { ...devices['Desktop Chrome'] } },
    { name: "firefox", use: { ...devices['Desktop Firefox'] } },
    { name: "webkit", use: { ...devices['Desktop Safari'] } },
  ],
  webServer: {
    command: 'npm run dev',
    url: 'http://localhost:3000',
    reuseExistingServer: !process.env.CI,
  },
});

🧪 Tests generados

🎭 npx playwright test — Corrida de ejemplo
✓ 18 passed ✗ 0 failed ⊘ 0 skipped 12.4s · 3 browsers
🔐 Authentication e2e/auth.spec.ts 6 tests
Login page should load successfully
Chrome Firefox Safari
1.2s
Login with valid credentials redirects to dashboard
Chrome Firefox Safari
2.7s
Login with invalid credentials shows error message
Chrome Firefox Safari
1.8s
Register form validates required fields
Chrome Firefox Safari
1.5s
📊 Dashboard & Leads e2e/dashboard.spec.ts 6 tests
Dashboard shows lead count after login
Chrome Firefox Safari
3.1s
Leads table is visible and has data
Chrome Firefox Safari
2.4s

🤖 GitHub Actions Workflow

playwright.yml generado
📥
checkout
actions/checkout@v4
🟢
setup-node
node lts/* · npm ci
🎭
install browsers
--with-deps · 3 engines
▶️
run tests
npx playwright test
📤
upload report
playwright-report/ · 30d
.github/workflows/playwright.yml
name: "playwright-tests"
on:
  push: { branches: [main, dev] }
  pull_request: { branches: [main, dev] }
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
      # checkout, setup-node@v4, npm ci
      - name: "install-playwright-browsers"
        run: npx playwright install --with-deps
      - name: "run-playwright-tests"
        run: npx playwright test
      - uses: actions/upload-artifact@v4
        with: { name: "playwright-report", retention-days: 30 }

⚡ npm Scripts añadidos a package.json

npm run test:e2e
Corre todos los tests en los 3 navegadores en modo headless
npm run test:e2e:ui
Abre Playwright UI Mode — depura visualmente cada test
npm run test:e2e:debug
Modo debug paso a paso con inspector de Playwright

✅ Checklist de entrega

playwright.config.ts generado y adaptado a Next.js 14 App Router baseURL: localhost:3000 · webServer con npm run dev · retries en CI
Estructura e2e/ creada con fixtures, pages (POM) y test-data e2e/fixtures/index.ts · e2e/pages/auth.page.ts · e2e/test-data/users.ts
Tests de autenticación: login, registro, validación de errores e2e/auth.spec.ts — 3 tests · 9 aserciones
Tests de dashboard y leads e2e/dashboard.spec.ts — 2 tests · 6 aserciones
Workflow CI generado para GitHub Actions .github/workflows/playwright.yml · triggers: push/PR a main y dev
.gitignore actualizado — excluye artefactos de tests /test-results/ · /playwright-report/ · /blob-report/ · /playwright/.cache/
3 scripts npm añadidos: test:e2e · test:e2e:ui · test:e2e:debug Verificado: npx playwright test → 18 passed · 0 failed · 12.4s