Skip to content

Desafio proposto durante a trilha de NodeJS no bootcamp Ignite da RocketSeat voltado para a escrita de testes unitários e de integração

License

Notifications You must be signed in to change notification settings

MrRioja/unit-tests-ignite

Repository files navigation

Testes Unitários e Integração - Ignite

GitHub top language GitHub last commit


SobreTestes Unitários e IntegraçãoInstalaçãoTecnologiasAutor


Sobre

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.

Testes Unitários e Integração

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:

Baterias de testes

Instalação

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.

🎲 Rodando o Back End

# 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>

Tecnologias

Node.js

Express.js

Jest




Autor

Luiz Rioja

Backend Developer

LinkedIn GitHub Gmail WhatsApp Skype

About

Desafio proposto durante a trilha de NodeJS no bootcamp Ignite da RocketSeat voltado para a escrita de testes unitários e de integração

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published