💻 Sobre o desafio

Nesse desafio, você deverá criar testes de integração para a mesma aplicação usada no desafio anterior.

Você pode inclusive fazer as alterações no mesmo repositório submetido no desafio de testes unitários e submetê-lo na plataforma.

Template da aplicação

Para realizar esse desafio, criamos para você esse modelo que você deve utilizar como um template do GitHub.

rocketseat-education/ignite-template-tests-challenge

Dica: Caso não saiba utilizar repositórios do GitHub como template, temos um guia em **nosso FAQ.**

Banco de dados

Para ter o funcionamento normal da aplicação durante os testes de integração é importante que você confira os dados de autenticação do banco no arquivo ormconfig.json e, se necessário, altere.

Além disso você precisa criar uma database com o nome fin_api de acordo com o que está no arquivo de configurações do TypeORM antes de rodar as migrations.

<aside> 💡 Se você quiser usar um banco específico somente para os testes, sinta-se livre para criar a sua própria configuração de conexão no arquivo src/database/index.ts. Isso não irá afetar a correção do seu desafio 🚀

</aside>

Rotas da aplicação

Para te ajudar a entender melhor o funcionamento da aplicação como um todo, abaixo você verá uma descrição de cada rota e quais parâmetros recebe.

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.

<aside> 💡 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.

</aside>

GET /api/v1/profile