-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Objetivo:
Aumentar a cobertura de testes do RouteSearchesController, garantindo que todos os cenários de sucesso e erro dos métodos get, getRanking e validateSearchParams sejam devidamente validados.
Descrição da Atividade
Desenvolver novos testes unitários para o arquivo RouteSearchesController.ts, complementando os testes existentes que já cobrem parte do método get.
Os testes devem utilizar Jest e Supertest, com mocks para o PostgresRouteSearchDataSource, de forma a isolar a lógica do controller e evitar chamadas reais ao banco de dados.
Cenários de Teste a Implementar
1. Método get — Erro interno inesperado
- Quando o método
routeSearchDataSource.get()lançar uma exceção genérica. - Esperado:
- Retornar status
500; - Corpo da resposta:
{ message: 'Um erro inesperado aconteceu ao encontrar as buscas realizadas' }.
- Retornar status
2. Método getRanking — Sucesso
- Quando o método
routeSearchDataSource.getRanking()retornar uma lista de resultados válida. - Esperado:
- Retornar status
200; - Chamar
getRanking()exatamente uma vez; - Retornar o corpo
{ data: [...] }.
- Retornar status
3. Método getRanking — Parâmetro inválido
- Quando a query não tiver
startDatenemendDate. - Esperado:
- Retornar status
400; - Não chamar
getRanking(); - Corpo:
{ message: 'Informe pelo menos um período: startDate,endDate' }.
- Retornar status
4. Método getRanking — Erro interno inesperado
- Quando
getRanking()lançar uma exceção genérica. - Esperado:
- Retornar status
500; - Corpo:
{ message: 'Um erro inesperado aconteceu ao obter o ranking das linhas' }.
- Retornar status
5. Método validateSearchParams — Parâmetros válidos
- Quando o objeto contiver pelo menos um dos parâmetros (
startDateouendDate). - Esperado:
- Não lançar exceção.
6. Método validateSearchParams — Parâmetros inválidos
- Quando o objeto não contiver nenhum dos parâmetros (
startDateeendDateausentes ou vazios). - Esperado:
- Lançar
InvalidParamErrorcom mensagem"Informe pelo menos um período: startDate,endDate".
- Lançar
Critérios de Aceitação
- Todos os métodos (
get,getRanking,validateSearchParams) devem possuir ao menos um teste de sucesso e um de erro.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
Status
👀 In review