Error Handling & Edge Cases Test Suite
Vectora deve tratar erros graciosamente em todas as situações, incluindo falhas de rede, inputs inválidos, quotas excedidas e cenários de timeout. Esta suite garante robustez em edge cases e recuperação elegante de erros. Cobertura: 150+ testes | Prioridade: CRÍTICA
Network Failures
- Servidor indisponível (10 testes)
- Timeout em requisições (12 testes)
- Conexão intermitente (10 testes)
- DNS resolution failures (8 testes)
- Partial data received (8 testes)
Expectativa: Retry com exponential backoff, erro claro ao user
Invalid Input Handling
- Queries malformadas (15 testes)
- Parameters fora de range (12 testes)
- Type mismatches (10 testes)
- Encoding issues (8 testes)
- Oversized payloads (8 testes)
Expectativa: 400 Bad Request com mensagem descritiva
Database Failures
- MongoDB offline (12 testes)
- Connection pool exhausted (10 testes)
- Query timeout (10 testes)
- Index unavailable (8 testes)
- Replication lag (8 testes)
Expectativa: 503 Service Unavailable, graceful degradation
API Quota & Rate Limiting
- Google API quota exceeded (10 testes)
- Voyage embeddings limit (10 testes)
- Rate limiter enforcement (8 testes)
- Graceful degradation (8 testes)
Expectativa: 429 Too Many Requests, retry info
Concurrent Access Conflicts
- Simultaneous writes (12 testes)
- Cache invalidation races (10 testes)
- Token expiration during request (8 testes)
- Connection pool contention (8 testes)
Expectativa: Transactional consistency, no data corruption
Resource Exhaustion
- Memory limits exceeded (10 testes)
- File descriptor exhaustion (8 testes)
- Goroutine leak (10 testes)
- CPU throttling (5 testes)
Expectativa: Graceful shutdown, no panic
Error Response SLAs
| Cenário | Expectativa |
|---|---|
| Network Error | 503 Service Unavailable (< 100ms) |
| Invalid Input | 400 Bad Request com mensagem clara |
| Auth Failure | 401/403 sem data exposure |
| Quota Exceeded | 429 Too Many Requests |
| Timeout | 504 Gateway Timeout (< 5s) |
External Linking
| Conceito | Recurso | Link |
|---|---|---|
| Error Handling in Go | Best Practices | pkg.go.dev/errors |
| HTTP Status Codes | RFC 7231 | tools.ietf.org/html/rfc7231 |
| Resilience Patterns | Engineering | medium.com/resilience-patterns |
| Timeout Strategies | AWS Blog | aws.amazon.com/blogs/exponential-backoff |
| Circuit Breaker Pattern | Design | martinfowler.com/bliki/CircuitBreaker |