Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementação de Flag de Autorização para Exibição de Contato e Testes TDD no ShelterService #194

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

Stain19
Copy link

@Stain19 Stain19 commented Aug 13, 2024

Descrição:
Este PR implementa uma nova flag no backend para controlar a exibição do contato dos abrigos, garantindo que essa informação seja mostrada apenas quando autorizada. Além disso, foram mantidos os conceitos atuais de mostrar o contato quando o usuário está logado e permitir que superadmins possam alterar a flag de autorização. Também foram realizados testes de validação para essa funcionalidade nos métodos show e index.

1. Implementação da Flag de Autorização no Backend:

  • Foi adicionada uma flag authorizedContact ao schema do modelo Shelter no Prisma, com valor padrão false. Isso garante que, ao rodar a migration, não haja impacto nos dados existentes no banco de dados.
  • A flag controla a exibição do contato do abrigo, permitindo que o sistema mostre essa informação apenas quando autorizado.
  • A lógica atual foi mantida, onde o contato é mostrado quando o usuário está logado. Adicionalmente, superadmins agora têm permissão para alterar a flag de autorização.

2. Adição de Testes TDD para o Método show:

  • Foram implementados testes para verificar a visibilidade do contato do abrigo com base nas condições dos parâmetros authorizedContact e shouldShowContact.
  • Casos testados incluem:
    • Contato oculto quando authorizedContact é falso e shouldShowContact é falso.
    • Contato visível quando authorizedContact é verdadeiro ou shouldShowContact é verdadeiro.
    • Garantia de que uma exceção é lançada se o abrigo não for encontrado (ID inválido).

3. Adição de Testes TDD para o Método index:

  • Foram incluídos testes para garantir a visibilidade dos contatos ao listar múltiplos abrigos, com base na condição authorizedContact.
  • Casos testados incluem:
    • Contato oculto quando authorizedContact é falso.
    • Contato visível quando authorizedContact é verdadeiro.
    • Verificação de retorno correto quando nenhuma entrada corresponde à consulta (lista vazia).

4. Correções e Melhorias:

  • Ajustes no mock de dados para refletir corretamente o tipo ShelterCategory usando o enum importado do Prisma.
  • Adição de verificações para evitar problemas de nulidade (null) ao acessar propriedades do objeto retornado.
  • Otimização das mensagens de erro para melhorar a rastreabilidade em casos de falhas.

5. Referência à Issue:

Como testar:

  1. Execute os testes utilizando o comando
    npm run test
    
  2. Verifique que todos os testes para os métodos show e index do ShelterService passam sem erros.
  3. Revise as condições de teste para garantir que todos os cenários críticos estão cobertos.

Considerações Finais:
Este PR aprimora a confiabilidade e segurança do sistema, assegurando que o contato dos abrigos seja exibido de acordo com as permissões configuradas. As alterações feitas no backend não impactam o funcionamento atual do frontend. No entanto, para permitir que a edição dos abrigos funcione corretamente, é necessário abrir uma issue no frontend para integrar essa nova funcionalidade, garantindo que a flag authorizedContact seja corretamente considerada e manipulada na interface do usuário.

@viniciusvieira00
Copy link

Fizemos em conjunto essa feature, relacionada a Issue #183

@Lucas13032003
Copy link

Fizemos em conjunto essa feature, relacionada a Issue #183

@Stain19
Copy link
Author

Stain19 commented Aug 20, 2024

@rhuam @giggio Deem uma olhadinha ae, pfvr

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants