/price-quotation-api

API para busca de cotação de preço de quartos disponíveis em um determinado hotel.

Primary LanguageHTML

Price quotation API

Tests

Índice

💻 Sobre

API para busca de cotação de preço de quartos disponíveis em um determinado hotel. Para isso é preciso informar somente a data de check-in e check-out, e a API retornará os quartos disponíveis.

Request

POST /search

curl -X POST http://localhost:3000/search 
  -H 'Content-Type: application/json'  
  -d '{"checkin": "2022-11-26", "checkout": "2022-11-30"}'
{
  "checkin": "YYYY-MM-DD",
  "checkout": "YYYY-MM-DD"
}

Response

[
  {
    "name": "STUDIO CASAL",
    "description": "Apartamentos no prédio principal do Resort",
    "price": "R$ 1.092,00",
    "image": "https://any.com/1/quartos/1/fotoprincipal.jpg"
  },
  {
    "name": "CABANA",
    "description": "Apartamentos pelos jardins do Resort",
    "price": "R$ 1.321,00",
    "image": "https://any.com/1/quartos/2/fotoprincipal.jpg"
  }
]

🗂 Pré-requisitos

Antes de começar, você vai precisar ter instalado:

  • NodeJS >= 14

🔥 Instalação e execução

# Instale as dependências
npm install

# Criar arquivo .env
PORT=3000
NODE_ENV=dev

# Execute a aplicação em modo de desenvolvimento
npm run dev

Pronto! Projeto estará disponível em http://localhost:3000.

🛠 Tecnologias

As principais ferramentas usadas na construção do projeto:

🧪 Testes

Testes unitários

Testes unitários utilizando o Jest. Esses testes podem ser executados com:

npm run test:unit

Testes de integração

Testes de integração utilizando o Jest e SuperTest. Esses testes podem ser executados com:

npm run test:integration

Cobertura de testes

Para obter a cobertura de testes pode executar o seguinte comando:

npm run test:ci

importante: Não é possível gerar cobertura de código para arquivos de teste usando o Puppeteer se o teste usar page.$eval, page.$$eval ou page.evaluate se a função passada for executada fora do escopo do Jest. Problema relatado em uma issue no github e na própria documentação do jest.