ADR-0012: Estratégia de Testes — Vitest + Playwright
Status
Accepted
Context and Problem Statement
Os projetos precisam de cobertura de testes em múltiplos níveis: unitários, integração e e2e, com execução rápida no CI.
Decision Drivers
- Velocidade de execução no CI
- Suporte a TypeScript nativo
- Compatibilidade com Next.js e NestJS
- Testes e2e confiáveis para fluxos críticos
Considered Options
- Vitest + Playwright
- Jest + Cypress
- Jest + Playwright
Decision Outcome
Chosen option: Vitest (unit/integration) + Playwright (e2e), porque Vitest é significativamente mais rápido que Jest com suporte nativo a ESM/TypeScript, e Playwright é mais confiável que Cypress para testes cross-browser.
Positive Consequences
- Vitest: watch mode rápido, compatível com Jest API (migração fácil)
- Playwright: testes e2e paralelos, multi-browser, trace viewer para debug
- Storybook interaction tests via
@storybook/test(baseado em Vitest) - NestJS: Vitest substitui Jest sem mudança de API
Negative Consequences
- Playwright requer browsers instalados no CI (GitHub Actions tem action oficial)
- Configuração inicial do Playwright mais verbosa que Cypress
More Information
- Unit/Integration: Vitest — todos os projetos
- E2E: Playwright —
atenvi-admin,atenvi-web - Storybook:
@storybook/testpara interaction tests ematenvi-ui - CI: testes unitários em PR, e2e em merge para main