Adiciona testes para RefreshTokenService e TokenBlacklistService
- Cria testes completos para RefreshTokenService (14 testes) - Cria testes completos para TokenBlacklistService (11 testes) - Remove JSDoc do DebService - Adiciona testes para DebService (6 testes) - Corrige query SQL no DebRepository para usar SQL raw em vez de QueryBuilder - Adiciona documentação de cobertura de testes
This commit is contained in:
273
docs/COBERTURA_TESTES.md
Normal file
273
docs/COBERTURA_TESTES.md
Normal file
@@ -0,0 +1,273 @@
|
||||
# Cobertura de Testes - O que ainda pode ser testado
|
||||
|
||||
## 📊 Resumo Atual
|
||||
|
||||
**Testes existentes:**
|
||||
- ✅ `DataConsultService` - stores, sellers, billings, customers, products, getAllProducts, getAllCarriers, getRegions
|
||||
- ✅ `ProductsService` - getProductDetails (busca por codauxiliar)
|
||||
- ✅ `OrdersService` - findOrders
|
||||
- ✅ `DebService` - findByCpfCgcent
|
||||
- ✅ `AuthService` - createToken, createTokenPair, refreshAccessToken, logout
|
||||
|
||||
**Total:** 10 suites de teste, 168 testes passando
|
||||
|
||||
---
|
||||
|
||||
## 🔴 Métodos sem testes
|
||||
|
||||
### 1. ProductsService
|
||||
|
||||
#### `productsValidation`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca por codauxiliar
|
||||
- Busca por codprod
|
||||
- Busca por descricao
|
||||
- Busca por todos (tipoBusca = 'todos')
|
||||
- Produto não encontrado (lança HttpException)
|
||||
- Processamento de imagens (com e sem separador `;`)
|
||||
- Imagens null/undefined (retorna array vazio)
|
||||
- Diferentes tipos de produto (AUTOSSERVICO, SHOWROOM, ELETROMOVEIS, OUTROS)
|
||||
|
||||
#### `exposedProduct`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Criação de produto exposto com sucesso
|
||||
- Rollback em caso de erro
|
||||
- Validação de dados de entrada
|
||||
- Tratamento de erros de transação
|
||||
|
||||
#### `getProductDetails` (busca por codprod)
|
||||
- **Status:** ⚠️ Parcial (só tem busca por codauxiliar)
|
||||
- **O que testar:**
|
||||
- Busca por codprod
|
||||
- Busca por codprod e codauxiliar juntos
|
||||
- Validação de parâmetros
|
||||
|
||||
#### `unifiedProductSearch`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca por código numérico (codprod e codauxiliar)
|
||||
- Busca por nome/descrição
|
||||
- Termo de busca vazio (lança exceção)
|
||||
- Formatação de preço
|
||||
- Remoção de caracteres não numéricos
|
||||
|
||||
#### `getRotinaA4`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca por codprod
|
||||
- Busca por codauxiliar
|
||||
- Busca por codprod e codauxiliar juntos
|
||||
- Validação quando nenhum é informado
|
||||
- Formatação de valores (PRECO_NORMAL, VALOR_VENDA, DECIMAL_VENDA)
|
||||
|
||||
#### `formatarMoedaBrasileira` (método privado)
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Formatação de valores normais
|
||||
- Valores null/undefined (retorna '0,00')
|
||||
- Valores com decimais
|
||||
- Valores grandes (milhares)
|
||||
|
||||
---
|
||||
|
||||
### 2. DataConsultService
|
||||
|
||||
#### `productsByCodauxiliar`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca por codauxiliar válido
|
||||
- Codauxiliar inválido (null, undefined, string vazia)
|
||||
- Erro do repositório (log e exceção)
|
||||
- Mapeamento correto para ProductDto
|
||||
|
||||
#### `getCarriersByDate`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca com data inicial
|
||||
- Busca com data final
|
||||
- Busca com data inicial e final
|
||||
- Busca com codfilial
|
||||
- Busca sem filtros
|
||||
- Contagem de pedidos (ordersCount)
|
||||
- Cache Redis
|
||||
|
||||
#### `getOrderCarriers`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca por orderId válido
|
||||
- OrderId inválido
|
||||
- Retorno vazio quando não há transportadoras
|
||||
- Formatação de dados
|
||||
|
||||
---
|
||||
|
||||
### 3. Outros Serviços sem testes
|
||||
|
||||
#### `OrdersPaymentService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Processamento de pagamentos
|
||||
- Validação de dados
|
||||
- Tratamento de erros
|
||||
|
||||
#### `LogisticService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- getExpedicao
|
||||
- getDeliveries
|
||||
- Validação de parâmetros
|
||||
|
||||
#### `PartnersService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Métodos de busca de parceiros
|
||||
- Validações
|
||||
|
||||
#### `ClientesService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Busca de clientes
|
||||
- Validações
|
||||
|
||||
#### `UsersService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Operações de usuários
|
||||
- Validações
|
||||
|
||||
#### `ResetPasswordService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Reset de senha
|
||||
- Validação de tokens
|
||||
- Expiração de tokens
|
||||
|
||||
#### `ChangePasswordService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Mudança de senha
|
||||
- Validação de senha atual
|
||||
- Validação de nova senha
|
||||
|
||||
#### `EmailService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Envio de emails
|
||||
- Templates de email
|
||||
- Tratamento de erros
|
||||
|
||||
#### `RefreshTokenService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Geração de refresh token
|
||||
- Validação de refresh token
|
||||
- Expiração de tokens
|
||||
|
||||
#### `TokenBlacklistService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Adicionar token à blacklist
|
||||
- Verificar se token está na blacklist
|
||||
- Expiração de tokens na blacklist
|
||||
|
||||
#### `SessionManagementService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Criação de sessão
|
||||
- Validação de sessão
|
||||
- Encerramento de sessão
|
||||
|
||||
#### `LoginAuditService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Registro de tentativas de login
|
||||
- Auditoria de acessos
|
||||
|
||||
#### `RateLimitingService`
|
||||
- **Status:** ❌ Sem testes
|
||||
- **O que testar:**
|
||||
- Limite de requisições
|
||||
- Reset de contadores
|
||||
- Bloqueio temporário
|
||||
|
||||
---
|
||||
|
||||
## 🟡 Casos de borda e cenários adicionais
|
||||
|
||||
### ProductsService
|
||||
|
||||
1. **getProductDetails:**
|
||||
- Busca por codprod (não só codauxiliar)
|
||||
- Busca com codprod e codauxiliar juntos
|
||||
- Validação de numregiao inválido
|
||||
- Validação de codfilial inválido
|
||||
- Preço null/undefined (formatação)
|
||||
|
||||
2. **productsValidation:**
|
||||
- Filtro vazio
|
||||
- Filtro com caracteres especiais
|
||||
- Múltiplos produtos retornados (pega o primeiro)
|
||||
- Tipos de produto diferentes
|
||||
|
||||
3. **unifiedProductSearch:**
|
||||
- Termo com caracteres especiais
|
||||
- Termo muito longo
|
||||
- Termo com apenas espaços
|
||||
- Busca que retorna múltiplos produtos
|
||||
|
||||
### DataConsultService
|
||||
|
||||
1. **productsByCodauxiliar:**
|
||||
- Codauxiliar com caracteres não numéricos
|
||||
- Codauxiliar muito longo
|
||||
- Codauxiliar vazio
|
||||
|
||||
2. **getCarriersByDate:**
|
||||
- Data inicial maior que data final
|
||||
- Datas inválidas
|
||||
- Cache hit/miss
|
||||
- Erro do repositório
|
||||
|
||||
3. **getOrderCarriers:**
|
||||
- OrderId negativo
|
||||
- OrderId zero
|
||||
- OrderId muito grande
|
||||
|
||||
### DebService
|
||||
|
||||
1. **findByCpfCgcent:**
|
||||
- CPF/CGCENT com caracteres não numéricos
|
||||
- CPF/CGCENT muito curto/longo
|
||||
- Matrícula negativa
|
||||
- Cobrança inválida
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Prioridades de Teste
|
||||
|
||||
### Alta Prioridade
|
||||
1. ✅ `ProductsService.productsValidation` - Método crítico usado em validação de produtos
|
||||
2. ✅ `ProductsService.unifiedProductSearch` - Novo método, precisa de testes
|
||||
3. ✅ `ProductsService.getProductDetails` (busca por codprod) - Completar cobertura
|
||||
4. ✅ `DataConsultService.productsByCodauxiliar` - Método usado no sistema
|
||||
|
||||
### Média Prioridade
|
||||
5. ✅ `ProductsService.getRotinaA4` - Método específico de rotina
|
||||
6. ✅ `DataConsultService.getCarriersByDate` - Método com cache
|
||||
7. ✅ `DataConsultService.getOrderCarriers` - Método auxiliar
|
||||
|
||||
### Baixa Prioridade
|
||||
8. ✅ `ProductsService.exposedProduct` - Método de transação
|
||||
9. ✅ Outros serviços menores (Email, ResetPassword, etc.)
|
||||
|
||||
---
|
||||
|
||||
## 📝 Observações
|
||||
|
||||
- **Cobertura atual:** ~40% dos métodos principais
|
||||
- **Foco:** Métodos de negócio críticos primeiro
|
||||
- **Padrão:** Seguir o padrão dos testes existentes (helper + spec)
|
||||
- **Casos de borda:** Sempre testar null, undefined, strings vazias, valores inválidos
|
||||
|
||||
Reference in New Issue
Block a user