Communitygithub.com

YepAPI/skills

Patterns Playwright : objets de page, bonnes pratiques pour les localisateurs, intégration CI, tests de régression visuelle et exécution parallèle.

Qu'est-ce que skills ?

Ce skill définit un ensemble de règles et de modèles pour les tests E2E avec Playwright. Il met l'accent sur l'utilisation de localisateurs basés sur les rôles (getByRole()), l'encapsulation des interactions dans des classes via le modèle Page Object, et l'isolation des tests pour garantir qu'ils sont indépendants et reproductibles. Le skill couvre également l'intégration CI, l'exécution parallèle, la régression visuelle avec toHaveScreenshot() et les bonnes pratiques pour éviter les appels manuels comme waitForTimeout(). Il est conçu pour les développeurs et ingénieurs QA utilisant Playwright dans un cadre professionnel, avec des exemples concrets en TypeScript et une configuration CI robuste. Le skill est applicable sur tout poste de travail ou environnement CI supportant Node.js et Playwright.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Tests E2E

Règles

  • Playwright pour les tests E2E — multi-navigateurs, attente automatique, moteur de test intégré, excellent support CI
  • Priorité des localisateurs : getByRole() > getByLabel() > getByPlaceholder() > getByTestId() > sélecteurs CSS
  • Modèle Page Object : encapsuler les interactions de page dans des classes — LoginPage.login(email, motDePasse)
  • Isolation des tests : chaque test commence avec un état frais — utiliser beforeEach pour la configuration, éviter les dépendances entre tests
  • Attente automatique : Playwright attend les éléments automatiquement — ne pas ajouter d'appels manuels waitForTimeout()
  • Assertions : utiliser les assertions web-first de expect(locator) — toBeVisible(), toHaveText(), toHaveURL()
  • Exécution parallèle : les tests s'exécutent en parallèle par défaut — garantir l'absence d'état mutable partagé entre les tests
  • CI : exécuter en mode headless, configurer les tentatives (retries: 2 dans CI), télécharger la trace en cas d'échec
  • Régression visuelle : expect(page).toHaveScreenshot() — mettre à jour les bases avec --update-snapshots

Patterns

// Modèle Page Object
class LoginPage {
  constructor(private page: Page) {}
  async goto() { await this.page.goto("/login"); }
  async login(email: string, motDePasse: string) {
    await this.page.getByLabel("Email").fill(email);
    await this.page.getByLabel("Mot de passe").fill(motDePasse);
    await this.page.getByRole("button", { name: "Se connecter" }).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"] } },
  ],
});

À éviter

  • page.waitForTimeout() — utiliser l'attente automatique ou waitForURL(), waitForResponse()
  • Les sélecteurs CSS pour les éléments interactifs — utiliser les localisateurs basés sur les rôles pour une meilleure résilience
  • Les tests qui dépendent de l'état d'autres tests — chaque test doit être exécutable indépendamment
  • Tester directement des services tiers — simuler les API externes avec page.route()
  • Ignorer les fenêtres mobiles — tester au moins un appareil mobile dans votre matrice de projets

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 associés