Testes de ponta-a-ponta com Playwright para validar fluxos críticos da aplicação.
- ✅ Redirecionamento para login (usuário não autenticado)
- ✅ Login com credenciais válidas
- ✅ Login com credenciais inválidas
- ✅ Logout e limpeza de token
- ✅ Refresh token automático
- ✅ Navegação protegida (401)
- ✅ CREATE: Criar novo usuário
- ✅ READ: Listar usuários com paginação
- ✅ READ: Buscar usuário por email
- ✅ UPDATE: Atualizar dados
- ✅ DELETE: Deletar usuário com confirmação
- ✅ VALIDATION: Email duplicado
- ✅ VALIDATION: Email inválido
- ✅ VALIDATION: Senha fraca
- ✅ PERFORMANCE: Renderização de 1000+ usuários
cd Application.Client/e2e
npm installAntes de executar os testes, certifique-se de que:
-
Backend está rodando
# Terminal 1 dotnet run --project Application.Web -
Frontend será iniciado automaticamente pelo Playwright
- O comando
npm testinicianpm startem../(Application.Client) - Acessa https://localhost:4200
- O comando
-
Docker (se necessário)
# Terminal (se precisar de RavenDB, Redis, etc) docker compose up
npm testnpm run test:debugnpm run test:uinpm run test:authnpm run test:user- baseURL: https://localhost:4200 (ajuste conforme necessário)
- browsers: Chromium + Firefox
- screenshots: Apenas em falhas
- trace: Armazenado em falhas (debugging)
Criar arquivo .env se necessário:
BASEURL=https://localhost:4200
ADMIN_EMAIL=admin@example.com
ADMIN_PASSWORD=AdminPassword123!Após execução, os relatórios estão em:
# HTML Report
npx playwright show-report
# Testes com falha
# - Screenshots em: test-results/
# - Videos em: test-results/ (se configurado)e2e/
├── tests/
│ ├── auth.spec.ts # Fluxos de autenticação
│ ├── user.spec.ts # CRUD de usuários
│ └── [outros].spec.ts # Adicione conforme necessário
├── playwright.config.ts # Configuração do Playwright
├── package.json
└── README.md
- Isolamento: Cada teste cria seus próprios dados
- Limpeza: Dados de teste devem ser removidos ao final
- Padrão AAA: Arrange → Act → Assert
- Selectors: Preferir
getByRole,getByPlaceholder,getByTextem vez de CSS - Esperas: Usar
waitForURL,waitForLoadState, nãowaitForTimeout
npx playwright test --debugJá configurado em playwright.config.ts:
use: {
video: 'retain-on-failure',
}npx playwright codegen https://localhost:4200Use variáveis de ambiente ou atualize os testes com credenciais válidas:
const validEmail = process.env.TEST_EMAIL || 'test@example.com';
const validPassword = process.env.TEST_PASSWORD || 'TestPassword123!';- Adicionar testes de notificações (WhatsApp, Email)
- Adicionar testes de integração com Moodle (GET only)
- Adicionar testes de relatórios (export, gráficos)
- Integrar com CI/CD (GitHub Actions)
- Testes de acessibilidade (a11y)
Última atualização: janeiro/2026
Mantido por: Feature Agent (Orquestrador)