-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Objetivo:
Garantir o correto funcionamento dos métodos register e login do UserController, validando todas as condições esperadas de sucesso e erro.
Descrição da Atividade
Desenvolver testes unitários e de integração para o arquivo UserController.ts, cobrindo os principais fluxos e cenários possíveis.
As dependências devem ser mockadas para garantir isolamento dos testes e evitar chamadas reais ao banco de dados ou geração de tokens.
Cenários de Teste a Implementar
Método register
- Cadastro bem-sucedido
- Deve retornar
201e um objeto JSON contendo o token JWT.
- Deve retornar
- Parâmetros ausentes
- Quando
name,emailoupasswordnão forem enviados, deve retornar400com a mensagem"Parâmetros inválidos".
- Quando
- Usuário já existente
- Quando
userDataSource.getByEmailretornar um usuário existente, deve retornar409com"Usuário já existe".
- Quando
- Erro ao criar usuário
- Quando
userDataSource.createretornarfalse, deve retornar500com"Falha ao cadastrar usuário".
- Quando
- Erro interno inesperado
- Simular uma exceção e verificar se retorna
500com"Falha ao cadastrar usuário".
- Simular uma exceção e verificar se retorna
Método login
- Login bem-sucedido
- Deve retornar
201e um objeto JSON contendo o token JWT.
- Deve retornar
- Parâmetros ausentes
- Quando
emailoupasswordnão forem enviados, deve retornar400com"Não foram enviados todos os parâmetros obrigatórios".
- Quando
- Usuário inexistente ou senha incorreta
- Deve retornar
400com"Parâmetros inválidos"quando o usuário não for encontrado ou a senha for inválida.
- Deve retornar
- Erro interno inesperado
- Simular uma exceção e verificar se retorna
500com"Falha ao efetuar o login do usuário".
- Simular uma exceção e verificar se retorna
Critérios de Aceitação
- Cobertura mínima de 80% nas funções do
UserController. - Todos os mocks devem ser bem isolados e restaurados após cada teste.
- O código dos testes deve seguir boas práticas de legibilidade e organização.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
Status
🏗 In progress