Sobre • Testes Unitários e Integração • Instalação • Tecnologias • Autor
Desafio proposto durante a trilha de NodeJS no bootcamp Ignite da RocketSeat. Esse desafio foi proposto no quarto capitulo da trilha e seu objetivo foi consolidar os conhecimentos ensinados durante o modulo 4 do curso.
No quarto modulo do bootcamp o assunto foi a escrita de testes unitários e de integração. Fomos desde a contextualização geral dos testes até suas estruturas e boas práticas.
Para realizar os testes utilizamos uma API financeira desenvolvida em módulos anteriores, que contém as seguintes rotas:
POST /api/v1/users
A rota recebe
name
, email
e password
dentro do corpo da requisição, salva o usuário criado no banco e retorna uma resposta vazia com status 201
.
POST /api/v1/sessions
A rota recebe
email
e password
no corpo da requisição e retorna os dados do usuário autenticado junto à um token JWT.
💡 Essa aplicação não possui refresh token, ou seja, o token criado dura apenas 1 dia e deve ser recriado após o período mencionado.
GET /api/v1/profile
A rota recebe um token JWT pelo header da requisição e retorna as informações do usuário autenticado.
GET /api/v1/statements/balance
A rota recebe um token JWT pelo header da requisição e retorna uma lista com todas as operações de depósito e saque do usuário autenticado e também o saldo total numa propriedade
balance
.
POST /api/v1/statements/deposit
A rota recebe um token JWT pelo header e
amount
e description
no corpo da requisição, registra a operação de depósito do valor e retorna as informações do depósito criado com status 201
.
POST /api/v1/statements/withdraw
A rota recebe um token JWT pelo header e
amount
e description
no corpo da requisição, registra a operação de saque do valor (caso o usuário possua saldo válido) e retorna as informações do saque criado com status 201
.
GET /api/v1/statements/:statement_id
A rota recebe um token JWT pelo header e o id de uma operação registrada (saque ou depósito) na URL da rota e retorna as informações da operação encontrada.
Por fim, deixo abaixo registrado o resultado da execução da bateria de testes implementada para a API:
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disso é bom ter um editor para trabalhar com o código como VSCode.
# Clone este repositório
$ git clone git@github.com:MrRioja/unit-tests-ignite.git
# Acesse a pasta do projeto no terminal/cmd
$ cd unit-tests-ignite
# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn dev
# Executar os testes
$ npm run test
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn test
# O servidor inciará na porta 3333 ou na porta definida no arquivo .env na variável APP_PORT - acesse <http://localhost:3333>