Files
Pulse ae39e45460 feat: biblioteca inteligente libs/ + 5 novas skills (20 skills total)
NOVAS SKILLS:
- next-best-practices      v0.1.0  (CLEAN) — Next.js App Router, RSC, caching, data
- nextjs-patterns          v1.0.0  (CLEAN) — Next.js 15: Server Actions, route handlers
- vite                     v1.0.0  (CLEAN) — env vars, aliases, proxy, CJS compat
- uncle-bob                v1.0.0  (CLEAN) — Clean Code, SOLID, Clean Architecture
- clean-code-review        v1.0.0  (CLEAN) — naming, guard clauses, anti-patterns, refactoring
- vue                      v1.0.0  (CLEAN) — Vue framework
- vue-composition-api-best-practices v1.0.0 (CLEAN) — composables, Pinia, reactivity

BIBLIOTECA INTELIGENTE libs/ (10 dominios, 11 arquivos):
- typescript/ — TS safe + generics gotchas
- react/ — Next.js App Router + Vite config
- vue/ — Composition API + Pinia
- linux/ — System diagnostic cheatsheet
- database/ — PostgreSQL + MySQL patterns
- browser/ — Chromium CLI + E2E testing
- security/ — SAST audit (OWASP Top 10)
- best-practices/ — Clean Code + SOLID + Clean Architecture
- deploy/ — Docker multi-stack + OpenClaw ops
- + INDEX.md como guia de navegacao

.learnings/ — LRN-20260519-003 criado (biblioteca compartilhada)
2026-05-19 21:03:25 -03:00

1.3 KiB

E2E Testing — Pirâmide e Padrões

Extraído de e2e-testing-patterns v1.0.0

🏔️ Test Pyramid

        /\           ← POUCOS: Critical paths (E2E)
       /E2E\          ← MAIS: Component/API integration
      /─────\
     /Integr\         ← MUITOS: Unit tests (rápidos, isolados)
    /────────\
   /Unit Tests\
  /────────────\

O que E2E Tests DEVEM cobrir

E2E Não E2E
Critical journeys (auth → dashboard → logout) Lógica unitária → use unit tests
Multi-step flows (checkout, onboarding) API contracts → use integration
Cross-browser Edge cases (muito lento)
Real API integration Internal implementation
Auth flows Visual states → use Storybook

Core Principles

Princípio Como
Test behavior, not implementation Assert em outcomes visíveis, não estrutura DOM
Independent tests Cada teste cria próprios dados e limpa
Deterministic waits Esperar por condição, não timeout fixo
Stable selectors Usar data-testid, roles, labels — nunca CSS classes
Fast feedback Mockar serviços externos, paralelizar, shard

Selector Priority

data-testid → data-cy → role → text → id → class (último recurso)