FinAPI é uma API para controles financeiros. Dentro da trilha do Ignite, construímos a API sem aplicar estruturação de pastas, utilização de banco de dados, princípios SOLID, e Docker. Essa versão 2.0 trás todos esses detalhes, porém a aplicação já vem pré-elaborada.
A versão antiga você pode conferir aqui 👉 FinAPI.
Assim, o principal desafio aqui é a construção de Testes Unitários
e Testes de Integração
utilizando o Jest.
Esse projeto foi desenvolvido com as seguintes tecnologias:
Os testes unitários são aplicados nos casos de uso da aplicação. Em ordem temos, dois módulos: users e statements
Os testes integrados estão aplicados de acordo com os controllers. Aplicamos uma conexão com o banco de dados e fazemos uma requisição utilizando o request da biblioteca supertest
.
- Deve ser possível criar um usuário.
- Não deve ser possível criar um usuário com um email que já exista.
- Deve ser possível autenticar um usuário.
- Não deve ser possível autenticar um usuário com email incorreto.
- Não deve ser possível autenticar um usuário com senha incorreta.
- Deve ser possível exibir os dados do usuário.
- Não deve ser possível exibir os dados de um usuário inexistente.
- Deve ser possível criar um extrato.
- Não deve ser possível criar um extrato para um usuário inexistente.
- Não deve ser possível criar um extrato de saque se o dinheiro na conta for inferior ao valor que o usuário deseja sacar da conta.
- Deve ser possível obter o saldo da conta.
- Não deve ser possível obter o saldo para um usuário inexistente.
- Deve ser possível obter o extrato de uma determinada operação.
- Não deve ser possível obter o extrato de uma operação para um usuário inexistente.
- Não deve ser possível obter o extrato de uma operação inexistente.