- Docker: utiliza Docker Compose para conteinerização do banco de dados (MySQL);
- Express: servidor HTTP;
- Knex: querybuilder para SQL;
- Celebrate e Joi: validação dos campos das requisições funcionando como Middleware das rotas;
- Jest e Supertest: teste das rotas;
- Eslint: linter configurado no padrão airbnb;
-
Faça o clone do projeto:
$ git clone https://github.com/dennisurtubia/teste_backend_appmoove.git
-
Inicie o Banco de Dados MySQL utilizando o Docker Compose:
- OBS: foi utilizado uma interface gráfica (MySQL Workbench).
$ docker-compose -f docker-compose.yml up
-
Abra o diretório do projeto e instale as dependências com:
$ cd teste_backend_appmoove $ yarn
-
Para iniciar o servidor em modo de desevolvimento execute:
$ yarn dev
Os testes foram implementados com base em cada uma das funções na qual esta API apresenta. Foram testados casos de SUCESSO e ERRO.
- O supertest provê uma ótima abstração para testes em rotas HTTP.
- As configurações de teste são encontradas no arquivo "jest.config.js".
- Para executar os testes basta executar o comando:
$ yarn test
As validações dos campos das requisições foram implementadas com base no SQL fornecido (tipo, requerido).
Em forma de Middleware, caso ocorra um erro de validação, é retornado uma mensagem.
Cada dominio da aplicação possui um respectivo arquivo de validações encontrado em /src/validations.
O middleware que caputra o erro e retorna o mesmo se encontra em /src/middlewares/validations.js.