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
201 e um objeto JSON contendo o token JWT.
- Parâmetros ausentes
- Quando
name, email ou password não forem enviados, deve retornar 400 com a mensagem "Parâmetros inválidos".
- Usuário já existente
- Quando
userDataSource.getByEmail retornar um usuário existente, deve retornar 409 com "Usuário já existe".
- Erro ao criar usuário
- Quando
userDataSource.create retornar false, deve retornar 500 com "Falha ao cadastrar usuário".
- Erro interno inesperado
- Simular uma exceção e verificar se retorna
500 com "Falha ao cadastrar usuário".
Método login
- Login bem-sucedido
- Deve retornar
201 e um objeto JSON contendo o token JWT.
- Parâmetros ausentes
- Quando
email ou password não forem enviados, deve retornar 400 com "Não foram enviados todos os parâmetros obrigatórios".
- Usuário inexistente ou senha incorreta
- Deve retornar
400 com "Parâmetros inválidos" quando o usuário não for encontrado ou a senha for inválida.
- Erro interno inesperado
- Simular uma exceção e verificar se retorna
500 com "Falha ao efetuar o login do usuário".
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.
Objetivo:
Garantir o correto funcionamento dos métodos
registerelogindoUserController, 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
register201e um objeto JSON contendo o token JWT.name,emailoupasswordnão forem enviados, deve retornar400com a mensagem"Parâmetros inválidos".userDataSource.getByEmailretornar um usuário existente, deve retornar409com"Usuário já existe".userDataSource.createretornarfalse, deve retornar500com"Falha ao cadastrar usuário".500com"Falha ao cadastrar usuário".Método
login201e um objeto JSON contendo o token JWT.emailoupasswordnão forem enviados, deve retornar400com"Não foram enviados todos os parâmetros obrigatórios".400com"Parâmetros inválidos"quando o usuário não for encontrado ou a senha for inválida.500com"Falha ao efetuar o login do usuário".Critérios de Aceitação
UserController.