Implementação do teste de front-end proposto pela HashLab.
- Node 14.15.3
- NPM 6.14.9
O arquivo config.json
na raíz da pasta src
tem o objeto anticipation_days
com os possíveis dias para recebimento. Você pode colocar os seguintes valores no array:
- 1
- 15
- 30
- 90
Execute no terminal o comando npm install
.
Segundo o desafio, podemos ter os seguintes casos de interação com a API:
- Sucesso
- Sucesso com delay
- Timeout
- Internal Server Error
Para simular cada um desses casos, vá ao arquivo src/pages/Main/index.js
na linha 39
com o código services.simulation(payload)
e mude a função para uma das abaixo:
- Sucesso(
simulation
) - Sucesso com delay(
simulationWithDelay
) - Timeout(
simulationWithInternalError
) - Internal Server Error(
simulationWithTimeout
)
Executa o projeto no modo de desenvolvimento, abrindo o navegador no endereço http://localhost:3000.
A página será recarregada quando você fizer edições.
Executa o test runner no modo interactive watch.
Inicia um novo servidor e executa os testes e2e do Cypress.
Executa os testes e2e do Cypress.
Criar a versão final do projeto para produção - de forma a otimizar o projeto para a melhor performance - , deixando os arquivos nas pasta build
.
Como são apenas 3 inputs, achei melhor não colocar mais peso no projeto colocando ferramentas como Formik e Yup para isso, fazendo a validação manualmente.
Poderia ter feito uso do ErrorBoundary
para capturar os erros de acordo com a request, mas achei mais prático tratar o erro dentro da página e mostrar um componente de alerta ao invés de mostrar outro conteúdo ao usuário - o que também poderia ter sido feito com ErrorBoundary.