mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-04-07 17:53:32 +08:00
fix: harden unicode safety checks
This commit is contained in:
@@ -9,7 +9,7 @@ Revisão completa de segurança e qualidade das mudanças não commitadas:
|
||||
**Problemas de Segurança (CRITICAL):**
|
||||
- Credenciais, chaves de API ou tokens hardcoded
|
||||
- Vulnerabilidades de SQL injection
|
||||
- Vulnerabilidades de XSS
|
||||
- Vulnerabilidades de XSS
|
||||
- Falta de validação de entrada
|
||||
- Dependências inseguras
|
||||
- Riscos de path traversal
|
||||
|
||||
@@ -182,7 +182,7 @@ Artifacts generated:
|
||||
╔══════════════════════════════════════════════════════════════╗
|
||||
║ E2E Test Results ║
|
||||
╠══════════════════════════════════════════════════════════════╣
|
||||
║ Status: ✅ ALL TESTS PASSED ║
|
||||
║ Status: PASS: ALL TESTS PASSED ║
|
||||
║ Total: 3 tests ║
|
||||
║ Passed: 3 (100%) ║
|
||||
║ Failed: 0 ║
|
||||
@@ -191,15 +191,15 @@ Artifacts generated:
|
||||
╚══════════════════════════════════════════════════════════════╝
|
||||
|
||||
Artifacts:
|
||||
📸 Screenshots: 2 files
|
||||
📹 Videos: 0 files (only on failure)
|
||||
🔍 Traces: 0 files (only on failure)
|
||||
📊 HTML Report: playwright-report/index.html
|
||||
Screenshots: 2 files
|
||||
Videos: 0 files (only on failure)
|
||||
Traces: 0 files (only on failure)
|
||||
HTML Report: playwright-report/index.html
|
||||
|
||||
View report: npx playwright show-report
|
||||
```
|
||||
|
||||
✅ E2E test suite ready for CI/CD integration!
|
||||
PASS: E2E test suite ready for CI/CD integration!
|
||||
```
|
||||
|
||||
## Artefatos de Teste
|
||||
@@ -235,7 +235,7 @@ open artifacts/search-results.png
|
||||
Se um teste falhar de forma intermitente:
|
||||
|
||||
```
|
||||
⚠️ FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
|
||||
WARNING: FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
|
||||
|
||||
Test passed 7/10 runs (70% pass rate)
|
||||
|
||||
@@ -254,10 +254,10 @@ Quarantine recommendation: Mark as test.fixme() until fixed
|
||||
## Configuração de Navegador
|
||||
|
||||
Os testes rodam em múltiplos navegadores por padrão:
|
||||
- ✅ Chromium (Desktop Chrome)
|
||||
- ✅ Firefox (Desktop)
|
||||
- ✅ WebKit (Desktop Safari)
|
||||
- ✅ Mobile Chrome (optional)
|
||||
- PASS: Chromium (Desktop Chrome)
|
||||
- PASS: Firefox (Desktop)
|
||||
- PASS: WebKit (Desktop Safari)
|
||||
- PASS: Mobile Chrome (optional)
|
||||
|
||||
Configure em `playwright.config.ts` para ajustar navegadores.
|
||||
|
||||
@@ -285,7 +285,7 @@ Adicione ao seu pipeline de CI:
|
||||
|
||||
Para PMX, priorize estes testes E2E:
|
||||
|
||||
**🔴 CRITICAL (Must Always Pass):**
|
||||
**CRITICAL (Must Always Pass):**
|
||||
1. User can connect wallet
|
||||
2. User can browse markets
|
||||
3. User can search markets (semantic search)
|
||||
@@ -294,7 +294,7 @@ Para PMX, priorize estes testes E2E:
|
||||
6. Market resolves correctly
|
||||
7. User can withdraw funds
|
||||
|
||||
**🟡 IMPORTANT:**
|
||||
**IMPORTANT:**
|
||||
1. Market creation flow
|
||||
2. User profile updates
|
||||
3. Real-time price updates
|
||||
@@ -305,20 +305,20 @@ Para PMX, priorize estes testes E2E:
|
||||
## Boas Práticas
|
||||
|
||||
**DO:**
|
||||
- ✅ Use Page Object Model para manutenção
|
||||
- ✅ Use atributos data-testid para seletores
|
||||
- ✅ Aguarde respostas de API, não timeouts arbitrários
|
||||
- ✅ Teste jornadas críticas de usuário end-to-end
|
||||
- ✅ Rode testes antes de mergear em main
|
||||
- ✅ Revise artefatos quando testes falharem
|
||||
- PASS: Use Page Object Model para manutenção
|
||||
- PASS: Use atributos data-testid para seletores
|
||||
- PASS: Aguarde respostas de API, não timeouts arbitrários
|
||||
- PASS: Teste jornadas críticas de usuário end-to-end
|
||||
- PASS: Rode testes antes de mergear em main
|
||||
- PASS: Revise artefatos quando testes falharem
|
||||
|
||||
**DON'T:**
|
||||
- ❌ Use seletores frágeis (classes CSS podem mudar)
|
||||
- ❌ Teste detalhes de implementação
|
||||
- ❌ Rode testes contra produção
|
||||
- ❌ Ignore testes flaky
|
||||
- ❌ Pule revisão de artefatos em falhas
|
||||
- ❌ Teste todo edge case com E2E (use testes unitários)
|
||||
- FAIL: Use seletores frágeis (classes CSS podem mudar)
|
||||
- FAIL: Teste detalhes de implementação
|
||||
- FAIL: Rode testes contra produção
|
||||
- FAIL: Ignore testes flaky
|
||||
- FAIL: Pule revisão de artefatos em falhas
|
||||
- FAIL: Teste todo edge case com E2E (use testes unitários)
|
||||
|
||||
## Notas Importantes
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ ok project/internal/handler 0.023s
|
||||
| Files modified | 2 |
|
||||
| Remaining issues | 0 |
|
||||
|
||||
Build Status: ✅ SUCCESS
|
||||
Build Status: PASS: SUCCESS
|
||||
```
|
||||
|
||||
## Erros Comuns Corrigidos
|
||||
|
||||
@@ -124,16 +124,16 @@ return fmt.Errorf("get user %s: %w", userID, err)
|
||||
- HIGH: 1
|
||||
- MEDIUM: 0
|
||||
|
||||
Recommendation: ❌ Block merge until CRITICAL issue is fixed
|
||||
Recommendation: FAIL: Block merge until CRITICAL issue is fixed
|
||||
```
|
||||
|
||||
## Critérios de Aprovação
|
||||
|
||||
| Status | Condição |
|
||||
|--------|----------|
|
||||
| ✅ Aprovado | Sem problemas CRÍTICO ou ALTO |
|
||||
| ⚠️ Aviso | Apenas problemas MÉDIOS (merge com cautela) |
|
||||
| ❌ Bloqueado | Problemas CRÍTICO ou ALTO encontrados |
|
||||
| PASS: Aprovado | Sem problemas CRÍTICO ou ALTO |
|
||||
| WARNING: Aviso | Apenas problemas MÉDIOS (merge com cautela) |
|
||||
| FAIL: Bloqueado | Problemas CRÍTICO ou ALTO encontrados |
|
||||
## Integração com Outros Comandos
|
||||
|
||||
- Use `/go-test` primeiro para garantir que os testes passam
|
||||
|
||||
@@ -69,7 +69,7 @@ Deleted: 12 unused functions
|
||||
Skipped: 2 items (tests failed)
|
||||
Saved: ~450 lines removed
|
||||
──────────────────────────────
|
||||
All tests passing ✅
|
||||
All tests passing PASS:
|
||||
```
|
||||
|
||||
## Regras
|
||||
|
||||
@@ -133,7 +133,7 @@ FAIL lib/liquidity.test.ts
|
||||
1 test failed, 0 passed
|
||||
```
|
||||
|
||||
✅ Os testes falharam conforme o esperado. Pronto para implementação.
|
||||
PASS: Os testes falharam conforme o esperado. Pronto para implementação.
|
||||
|
||||
## Etapa 4: Implementar o código mínimo (VERDE)
|
||||
|
||||
@@ -179,7 +179,7 @@ PASS lib/liquidity.test.ts
|
||||
3 tests passed
|
||||
```
|
||||
|
||||
✅ Todos os testes passando
|
||||
PASS: Todos os testes passando
|
||||
|
||||
## Etapa 6: Refatorar (MELHORAR)
|
||||
|
||||
@@ -236,7 +236,7 @@ PASS lib/liquidity.test.ts
|
||||
3 tests passed
|
||||
```
|
||||
|
||||
✅ Refatoração concluída, testes ainda passando!
|
||||
PASS: Refatoração concluída, testes ainda passando!
|
||||
|
||||
## Etapa 8: Verificar a cobertura
|
||||
|
||||
@@ -247,29 +247,29 @@ File | % Stmts | % Branch | % Funcs | % Lines
|
||||
---------------|---------|----------|---------|--------
|
||||
liquidity.ts | 100 | 100 | 100 | 100
|
||||
|
||||
Coverage: 100% ✅ (Target: 80%)
|
||||
Coverage: 100% PASS: (Target: 80%)
|
||||
```
|
||||
|
||||
✅ TDD sessão completa!
|
||||
PASS: TDD sessão completa!
|
||||
```
|
||||
|
||||
## Boas Práticas de TDD
|
||||
|
||||
**Fazer:**
|
||||
- ✅ Escreva o teste PRIMEIRO, antes da implementação
|
||||
- ✅ Rode testes e confirme que FALHAM antes de implementar
|
||||
- ✅ Escreva código mínimo para fazer passar
|
||||
- ✅ Refatore só depois que os testes estiverem verdes
|
||||
- ✅ Adicione casos de borda e cenários de erro
|
||||
- ✅ Mire 80%+ de cobertura (100% para código crítico)
|
||||
- PASS: Escreva o teste PRIMEIRO, antes da implementação
|
||||
- PASS: Rode testes e confirme que FALHAM antes de implementar
|
||||
- PASS: Escreva código mínimo para fazer passar
|
||||
- PASS: Refatore só depois que os testes estiverem verdes
|
||||
- PASS: Adicione casos de borda e cenários de erro
|
||||
- PASS: Mire 80%+ de cobertura (100% para código crítico)
|
||||
|
||||
**Não fazer:**
|
||||
- ❌ Escrever implementação antes de testes
|
||||
- ❌ Pular execução de testes após cada mudança
|
||||
- ❌ Escrever código demais de uma vez
|
||||
- ❌ Ignorar testes falhando
|
||||
- ❌ Testar detalhes de implementação (teste comportamento)
|
||||
- ❌ Fazer mock de tudo (prefira testes de integração)
|
||||
- FAIL: Escrever implementação antes de testes
|
||||
- FAIL: Pular execução de testes após cada mudança
|
||||
- FAIL: Escrever código demais de uma vez
|
||||
- FAIL: Ignorar testes falhando
|
||||
- FAIL: Testar detalhes de implementação (teste comportamento)
|
||||
- FAIL: Fazer mock de tudo (prefira testes de integração)
|
||||
|
||||
## Tipos de Teste a Incluir
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ File Before After
|
||||
src/services/auth.ts 45% 88%
|
||||
src/utils/validation.ts 32% 82%
|
||||
──────────────────────────────
|
||||
Overall: 67% 84% ✅
|
||||
Overall: 67% 84% PASS:
|
||||
```
|
||||
|
||||
## Áreas de Foco
|
||||
|
||||
Reference in New Issue
Block a user