/teste-api

💲 Resolução do teste prático de uma API de cálculo de orçamento.

Primary LanguageTypeScript

(Resolução) Teste - API de Orçamento

Status: finalizado ✔

Descrição:

Utilizando os dados disponíveis em dois mockends (um com uma lista de usuários e outro com uma lista de produtos), foi desenvolvido uma API onde é possível:

  • listar os dados dos usuários ("users");
  • listar os dados dos produtos ("products");
  • calcular o orçamento ("budget") que cada usuário irá pagar em cima do(s) preço(s) do(s) produtos(s) selecionado(s);

Ferramentas Utilizadas:

Como Baixar o Projeto:

Antes de baixar o projeto, certifique-se de que você tenha o Node, o npm (gerenciador de pacotes do Node) e o Git instalandos e devidamente configurados no seu computador.
Abaixo estão alguns links de apoio:

É recomendado que os comandos abaixo sejam feitos em um terminal bash

# 1: clone o repositório
git clone git@github.com:celiovjunior/teste-api.git

# 2: acesse a pasta do projeto
cd teste-api

# 3: faça o download das bibliotecas/frameworks pendentes e aguarde
npm install

# 4: execute o projeto
npm run dev

# Uma mensagem dizendo 'Server is running' deverá aparecer

Detalhes do Projeto

Formato:

Os dados do projeto foram trabalhados no formato JSON
Segue os exemplos abaixo:

USER

[
  {
  "id": 1,
  "name": "cvRhuZicvV",
  "tax": 79
  },
  {
  "id": 2,
  "name": "P5hBDBonm3",
  "tax": 121
  },
  {
  "id": 3,
  "name": "buTTe8n3gT",
  "tax": 82
  },
  {...}
]

PRODUCT

[
  {
  "id": 1,
  "name": "explicabo alias hic reprehenderit deleniti quos id reprehenderit consequuntur ipsam iure voluptatem ea culpa excepturi ducimus repudiandae ab",
  "price": 6945
  },
  {
  "id": 2,
  "name": "nostrum veritatis reprehenderit repellendus vel numquam soluta ex inventore ex",
  "price": 2435
  },
  {
  "id": 3,
  "name": "praesentium explicabo reprehenderit laudantium a pariatur ab sit pariatur quos",
  "price": 4985
  },
  {...}
]

Rotas

Para testar as requisições do projeto, é recomendável utilizar algum software de teste de API, como Postman ou Insomnia

Abaixo, alguns links de apoio:

Na tabela seguir, estão algumas orientações de quais rotas são possíveis testar, o tipo de requisição e qual a ação esperada:

A URL base padrão é: http://localhost:3333

Ação Método HTTP Rota
Listar todos os usuários GET "/users"
Listar todos os produtos GET "/products"
Fazer o calculo de orçamento GET "/budget/:userId/:productIds"

OBS: Na rota de cálculo de orçamento, é possível passar mais de um id em :productIds, separando cada id por vírgula (,)


Testes Unitários

Para a realização dos testes, foi utilizada framework Jest.
Você pode acessar mais detalhes sobre essa ferramenta através do link abaixo:

Neste projeto, o Jest foi utilizado para testar se os middlewares se comportam da forma esperada, tendo em vista o status da resposta da requisição (statusCode), o tamanho da lista retornada (length) e o calculo do orçamento (budget) de acordo com os parâmetros passados na rota .

O arquivo de teste se encontra dentro da pasta middleware:

Para rodar os testes, basta rodar o comando abaixo no terminal, dentro do da pasta raiz do projeto:

npm run test

Final

Em caso de dúvidas, erros ou mal funcionamento do código, você pode entrar em contato comigo através do e-mail:
📩 cl.juniorr@gmail.com