-
Notifications
You must be signed in to change notification settings - Fork 0
Casos de teste
Este arquivo contém testes de integração para as rotas e funcionalidades relacionadas ao AlertaController que interage com o Firebase Firestore. Os testes verificam a criação e recuperação de estações, parâmetros e alertas. Este teste foi selecionado devido ao fato de que a base do projeto depende das estações e parâmetros e o alerta precisa da relação entre eles para poder existir, logo um teste de integração no alerta garantiria a verificação se o parametro e a estação estão conseguindo ser integrados.
Antes de todos os testes, uma estação de exemplo é criada e o ID da estação é armazenado para ser usado nos testes subsequentes. A resposta esperada é um status HTTP 201 (Criado).
Após a execução dos testes, a estação criada é removida da base de dados.
- Objetivo: Verificar se a estação criada pode ser recuperada corretamente pelo ID.
- Expectativa: O status HTTP deve ser 200 (OK) e o corpo da resposta deve conter o ID correto da estação.
- Objetivo: Verificar se é possível cadastrar um novo parâmetro.
- Expectativa: O parâmetro deve ser cadastrado com sucesso e um ID deve ser retornado.
- Objetivo: Testar o cadastro de um alerta que envolve uma estação e um parâmetro.
- Expectativa: O alerta deve ser salvo corretamente no Firestore e seu ID deve ser retornado.
- Objetivo: Verificar se todos os alertas cadastrados podem ser recuperados.
- Expectativa: A resposta deve ser um array e o alerta previamente criado deve estar presente na lista.
Esses testes garantem que a aplicação seja capaz de cadastrar, recuperar e listar alertas, estações e parâmetros corretamente, com a interação adequada com o Firebase Firestore.
Este teste tem como objetivo verificar se a página Alertas consegue ter seu html carregado corretamente sem erros, garantindo que os elementos principais da página, como o título e o sidebar, sejam exibidos conforme o esperado.
-
Renderiza o Componente Alertas:
- O componente
Alertasé renderizado dentro de umMemoryRouterdo React Router. OMemoryRouteré usado para emular o roteamento de navegação sem precisar de um servidor, permitindo que a navegação seja simulada de maneira isolada no teste.
- O componente
-
Verifica a Renderização do Título:
- O teste espera que o título "Alertas cadastrados" seja exibido na tela. Isso é feito utilizando o método
getByText, que busca um texto na tela e verifica se ele está presente. A verificação é feita de forma assíncrona usandowaitForpara aguardar a renderização completa antes de validar o título.
- O teste espera que o título "Alertas cadastrados" seja exibido na tela. Isso é feito utilizando o método
-
Verifica a Existência do Sidebar:
- O teste também verifica se o
sidebarda página é renderizado corretamente. Para isso, ele usagetByTestIdpara buscar um elemento que tenha o atributodata-testid="sidebar".
- O teste também verifica se o
- Renderização sem erros: O componente Alertas deve ser renderizado corretamente, sem quebras ou erros de execução.
- Título presente na tela: O texto "Alertas cadastrados" deve ser encontrado na tela, indicando que a página está carregada corretamente.
-
Sidebar presente: O sidebar deve ser renderizado corretamente e encontrado usando o
data-testidconfigurado no componente.
- O teste deve passar, indicando que a página Alertas é renderizada sem falhas e os elementos essenciais (título e sidebar) estão presentes.
- Caso algum desses elementos não seja renderizado ou algum erro ocorra, o teste falhará, e uma mensagem de erro será fornecida.
Este teste verifica a renderização básica da página Alertas, assegurando que a interface esteja carregada corretamente com o título e sidebar visíveis. O teste usa @testing-library/react para renderização e interações com a UI, garantindo que a página se comporte conforme esperado.
Garantir a qualidade do código através de análises automatizadas realizadas pelo SonarCloud, utilizando métricas como cobertura de testes, duplicação de código, bugs, vulnerabilidades e code smells. O objetivo é assegurar que o código atenda a padrões de qualidade previamente estabelecidos e que seja confiável para produção. Utilizando o conceito da integração e entrega contínua, o teste de qualidade com o SonarCloud pode ser incorporado em pipelines, que vão ser executadas automaticamente após algum "gatilho" específico, que pode ser um commit ou pull request em alguma branch específica (como a develop) por exemplo, e com isso, através do relatório gerado no SonarCloud, é possível receber uma análise da qualidade do código, que pode ajudar a encontrar problemas no seu estágio inicial, fazendo com que a equipe possa arrumar o erro, e talvez evitar algo que, após um tempo, poderia virar um problema muito maior.
O SonarCloud é integrado ao GitHub Actions, que desempenha um papel crucial na automação do processo de análise de qualidade do código. O GitHub Actions é uma plataforma de CI/CD (Integração Contínua e Entrega Contínua) que permite automatizar workflows diretamente no repositório do GitHub.
No caso do SonarCloud, o GitHub Actions é responsável por disparar a análise de qualidade do código de forma automática sempre que há um novo commit ou pull request nas branches configuradas. Isso garante que a qualidade do código seja constantemente verificada, sem a necessidade de intervenções manuais, tornando o processo eficiente e ágil.
O workflow do GitHub Actions é executado de forma consistente e confiável, realizando as seguintes etapas automaticamente:
- Checkout do código: Obtém a versão mais recente do código do repositório.
- Configuração do ambiente: Instala as dependências necessárias, como o Node.js e o Java 17, que são fundamentais para a execução do SonarScanner, a ferramenta que realiza a análise estática do código.
- Execução da análise de qualidade: O SonarScanner analisa o código e envia os resultados para o SonarCloud, onde as métricas de qualidade são processadas.
- Verificação do Quality Gate: Após a análise, o GitHub Actions verifica se o código passou no Quality Gate do SonarCloud, que é um conjunto de critérios de qualidade que o código precisa atender para ser considerado pronto para produção.
Essa automação do GitHub Actions permite que a análise de qualidade do código seja realizada de forma contínua, garantindo que cada alteração no código seja sempre verificada contra os critérios de qualidade. Além disso, reduz o risco de erros manuais e aumenta a confiabilidade do processo, uma vez que o pipeline é executado de forma consistente, sempre que um novo código é enviado.
A configuração inicial do SonarCloud é feita pelo desenvolvedor ou DevOps da equipe. A análise é executada automaticamente em momentos-chave do desenvolvimento:
- A cada commit ou pull request em branches monitoradas.
- Após o merge em branches principais, como develop ou main.