- 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
7.0 KiB
7.0 KiB
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
-
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)
-
productsValidation:
- Filtro vazio
- Filtro com caracteres especiais
- Múltiplos produtos retornados (pega o primeiro)
- Tipos de produto diferentes
-
unifiedProductSearch:
- Termo com caracteres especiais
- Termo muito longo
- Termo com apenas espaços
- Busca que retorna múltiplos produtos
DataConsultService
-
productsByCodauxiliar:
- Codauxiliar com caracteres não numéricos
- Codauxiliar muito longo
- Codauxiliar vazio
-
getCarriersByDate:
- Data inicial maior que data final
- Datas inválidas
- Cache hit/miss
- Erro do repositório
-
getOrderCarriers:
- OrderId negativo
- OrderId zero
- OrderId muito grande
DebService
- 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
- ✅
ProductsService.productsValidation- Método crítico usado em validação de produtos - ✅
ProductsService.unifiedProductSearch- Novo método, precisa de testes - ✅
ProductsService.getProductDetails(busca por codprod) - Completar cobertura - ✅
DataConsultService.productsByCodauxiliar- Método usado no sistema
Média Prioridade
- ✅
ProductsService.getRotinaA4- Método específico de rotina - ✅
DataConsultService.getCarriersByDate- Método com cache - ✅
DataConsultService.getOrderCarriers- Método auxiliar
Baixa Prioridade
- ✅
ProductsService.exposedProduct- Método de transação - ✅ 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