fix: harden unicode safety checks

This commit is contained in:
Affaan Mustafa
2026-03-29 08:59:06 -04:00
parent dd675d4258
commit 866d9ebb53
239 changed files with 3780 additions and 3962 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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