Title: Criar testes unitários para o UserController · Issue #70 · UnifespCodeLab/emtu-api · GitHub
Open Graph Title: Criar testes unitários para o UserController · Issue #70 · UnifespCodeLab/emtu-api
X Title: Criar testes unitários para o UserController · Issue #70 · UnifespCodeLab/emtu-api
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 UserC...
Open Graph 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ár...
X 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ár...
Opengraph URL: https://github.com/UnifespCodeLab/emtu-api/issues/70
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Criar testes unitários para o UserController","articleBody":"**Objetivo:**\n\nGarantir o correto funcionamento dos métodos `register` e `login` do `UserController`, validando todas as condições esperadas de sucesso e erro.\n\n---\n\n### **Descrição da Atividade**\n\nDesenvolver testes unitários e de integração para o arquivo `UserController.ts`, cobrindo os principais fluxos e cenários possíveis.\n\nAs dependências devem ser **mockadas** para garantir isolamento dos testes e evitar chamadas reais ao banco de dados ou geração de tokens.\n\n---\n\n### **Cenários de Teste a Implementar**\n\n### **Método `register`**\n\n1. **Cadastro bem-sucedido**\n - Deve retornar `201` e um objeto JSON contendo o token JWT.\n2. **Parâmetros ausentes**\n - Quando `name`, `email` ou `password` não forem enviados, deve retornar `400` com a mensagem `\"Parâmetros inválidos\"`.\n3. **Usuário já existente**\n - Quando `userDataSource.getByEmail` retornar um usuário existente, deve retornar `409` com `\"Usuário já existe\"`.\n4. **Erro ao criar usuário**\n - Quando `userDataSource.create` retornar `false`, deve retornar `500` com `\"Falha ao cadastrar usuário\"`.\n5. **Erro interno inesperado**\n - Simular uma exceção e verificar se retorna `500` com `\"Falha ao cadastrar usuário\"`.\n\n---\n\n### **Método `login`**\n\n1. **Login bem-sucedido**\n - Deve retornar `201` e um objeto JSON contendo o token JWT.\n2. **Parâmetros ausentes**\n - Quando `email` ou `password` não forem enviados, deve retornar `400` com `\"Não foram enviados todos os parâmetros obrigatórios\"`.\n3. **Usuário inexistente ou senha incorreta**\n - Deve retornar `400` com `\"Parâmetros inválidos\"` quando o usuário não for encontrado ou a senha for inválida.\n4. **Erro interno inesperado**\n - Simular uma exceção e verificar se retorna `500` com `\"Falha ao efetuar o login do usuário\"`.\n\n---\n\n### **Critérios de Aceitação**\n\n- Cobertura mínima de **80%** nas funções do `UserController`.\n- Todos os mocks devem ser bem isolados e restaurados após cada teste.\n- O código dos testes deve seguir boas práticas de legibilidade e organização.","author":{"url":"https://github.com/liviacanuto","@type":"Person","name":"liviacanuto"},"datePublished":"2025-10-11T01:05:03.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/70/emtu-api/issues/70"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:142c2136-c6e8-34ea-431a-2add80db6c48 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 9074:13B1D:2133D:29D5C:6A4C63D9 |
| html-safe-nonce | 7b549519f515694d35db5ccbe3bd138a18c634bf8e5e72f17e0bec4e023960f3 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MDc0OjEzQjFEOjIxMzNEOjI5RDVDOjZBNEM2M0Q5IiwidmlzaXRvcl9pZCI6IjYxMTI5NzE5OTU3Nzg2NzE1NzciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 5eb91e56b57b6a1b36f570ab6ef5de0ff06b822d6b705b7a7395089857351a5f |
| hovercard-subject-tag | issue:3504925114 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/UnifespCodeLab/emtu-api/70/issue_layout |
| twitter:image | https://opengraph.githubassets.com/0debf99e56d6c962182bd24f7c827539c9ca65f02d29129d4c03334bff88377a/UnifespCodeLab/emtu-api/issues/70 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/0debf99e56d6c962182bd24f7c827539c9ca65f02d29129d4c03334bff88377a/UnifespCodeLab/emtu-api/issues/70 |
| og:image:alt | 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ár... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | liviacanuto |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| go-import | github.com/UnifespCodeLab/emtu-api git https://github.com/UnifespCodeLab/emtu-api.git |
| octolytics-dimension-user_id | 90548383 |
| octolytics-dimension-user_login | UnifespCodeLab |
| octolytics-dimension-repository_id | 531928644 |
| octolytics-dimension-repository_nwo | UnifespCodeLab/emtu-api |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 531928644 |
| octolytics-dimension-repository_network_root_nwo | UnifespCodeLab/emtu-api |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 14099438da5379150f15a2892474c7c7e6c0e55e |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width