Communitygithub.com

YepAPI/skills

Patrones de Playwright: page objects, mejores prácticas de localizadores, integración con CI, pruebas de regresión visual y ejecución en paralelo.

¿Qué es skills?

Este skill proporciona un conjunto completo de pautas y mejores prácticas para pruebas E2E con Playwright. Está diseñado para desarrolladores y agentes de IA que trabajan en la automatización de pruebas, ofreciendo reglas claras sobre localizadores (priorizando `getByRole()` sobre selectores CSS), el patrón Page Object Model para encapsular interacciones, aislamiento de pruebas con estado fresco, y el uso de aserciones web-first. El skill incluye fragmentos de código prácticos, como un ejemplo de `LoginPage` y una configuración de `playwright.config.ts` con reintentos y capturas de pantalla en CI. Además, advierte sobre prácticas que deben evitarse, como `waitForTimeout()` manual o la dependencia entre pruebas. Es compatible con cualquier proyecto que utilice Playwright en Node.js, ideal para equipos que buscan estandarizar su estrategia de pruebas E2E y garantizar la fiabilidad en la integración continua.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/YepAPI/skills/tree/HEAD/skills/e2e-testing

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Pruebas E2E

Reglas

  • Playwright para E2E: multinavegador, espera automática, ejecutor de pruebas integrado, excelente soporte para CI
  • Prioridad de localizadores: getByRole() > getByLabel() > getByPlaceholder() > getByTestId() > selectores CSS
  • Page Object Model: encapsular las interacciones de página en clases — LoginPage.iniciarSesion(email, password)
  • Aislamiento de pruebas: cada prueba comienza con un estado nuevo — usa beforeEach para la configuración, evita la interdependencia entre pruebas
  • Espera automática: Playwright espera los elementos automáticamente — no añadas llamadas manuales a waitForTimeout()
  • Aserciones: usa aserciones web-first con expect(localizador) — toBeVisible(), toHaveText(), toHaveURL()
  • Ejecución en paralelo: las pruebas se ejecutan en paralelo por defecto — asegúrate de que no haya estado mutable compartido entre pruebas
  • CI: ejecuta en modo headless, configura reintentos (retries: 2 en CI), sube traza en caso de fallo
  • Regresión visual: expect(page).toHaveScreenshot() — actualiza las líneas base con --update-snapshots

Patrones

// Page Object Model
class PaginaLogin {
  constructor(private page: Page) {}
  async irA() { await this.page.goto("/login"); }
  async iniciarSesion(email: string, password: string) {
    await this.page.getByLabel("Email").fill(email);
    await this.page.getByLabel("Contraseña").fill(password);
    await this.page.getByRole("button", { name: "Iniciar sesión" }).click();
    await this.page.waitForURL("/dashboard");
  }
}

// playwright.config.ts
export default defineConfig({
  retries: process.env.CI ? 2 : 0,
  use: { trace: "on-first-retry", screenshot: "only-on-failure" },
  projects: [
    { name: "chromium", use: { ...devices["Desktop Chrome"] } },
    { name: "mobile", use: { ...devices["Pixel 5"] } },
  ],
});

Evitar

  • page.waitForTimeout() — usa la espera automática o waitForURL(), waitForResponse()
  • Selectores CSS para elementos interactivos — usa localizadores basados en roles para mayor robustez
  • Pruebas que dependen del estado de otras pruebas — cada prueba debe poder ejecutarse de forma independiente
  • Probar servicios de terceros directamente — simula APIs externas con page.route()
  • Omitir viewports móviles — prueba al menos un dispositivo móvil en tu matriz de proyectos

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

YepAPI/skills

WCAG 2.1 AA — semantic HTML, keyboard navigation, screen readers.

YepAPI/skills

Experiment setup, variant splitting, statistical significance, and feature flag integration.

YepAPI/skills

CRUD generators, data tables, user management, role-based access, and bulk operations.

YepAPI/skills

Monitor what ChatGPT and Gemini say about your brand using YepAPI.

YepAPI/skills

Queue workers with BullMQ/Inngest/Trigger.dev, job retries, dead letter queues, concurrency.

YepAPI/skills

Commander.js, interactive prompts with Clack, spinners, colors, config files, exit codes, and npm publishing.

YepAPI/skills

cmdk integration, Cmd+K trigger, fuzzy search, grouped actions, keyboard navigation, and dynamic action registration.

YepAPI/skills

Content planning with trend and sentiment data from YepAPI.

YepAPI/skills

Content calendar, keyword-driven planning, and content briefs.

YepAPI/skills

Theme switching with CSS variables, system preference detection, next-themes, and persistence.

YepAPI/skills

Threaded comments, @mentions, reactions, moderation queue, optimistic UI, and cursor pagination.

YepAPI/skills

Competitive analysis between domains using YepAPI.

YepAPI/skills

Layout grids, KPI cards, data tables with sorting/filtering, sidebar navigation, and responsive breakpoints.

YepAPI/skills

Data encryption — TLS everywhere, AES-256-GCM for PII, bcrypt passwords, encrypted backups.

YepAPI/skills

Chart patterns with Recharts/Nivo/D3, responsive containers, color scales, and accessibility.

YepAPI/skills

Drizzle schema definition, push vs migrate, type-safe queries, relations, transactions, and prepared statements.

YepAPI/skills

Upload handling, resize/compress, CDN delivery, blur placeholders, and next/image patterns.

YepAPI/skills

Local business and Google Maps research using YepAPI.

YepAPI/skills

Cursor-based pagination, IntersectionObserver, virtualized lists with @tanstack/react-virtual, and scroll position restoration.

YepAPI/skills

Chat UI components, streaming responses with AI SDK, context window management, and RAG patterns.

Skills relacionados