An open API service indexing awesome lists of open source software.

https://github.com/sancruz-dev/jest-tests-dio

Testes com Jest + nodeJs
https://github.com/sancruz-dev/jest-tests-dio

dio-bootcamp

Last synced: 3 months ago
JSON representation

Testes com Jest + nodeJs

Awesome Lists containing this project

README

        

# TwiDIO API

#### API desenvolvida para o projeto TwiDIO

### Arquitetura

#### 📂Controllers
> Aplica validações necessárias na requisição.
#### 📂Services
> Aplica regras de negócios antes de enviar ao repositório.
#### 📂Repositories
> Salva os dados no banco de dados.
#### 📂Entities
> Gerencia a estrutura das entidades da aplicação.
#### 📂Database
> Cria as conexões necessárias com o banco de dados.

#### 📂__mocks __
> Armazena os dados e mocks utilizados nos testes unitários.
#### 📂tests
> Armazena as switch de testes de integração.

```
📁 TwiDIO
|
|- 📁 src
| |
| |- 📁 __mocks_
| |- 📄 getEntityManagerMock.ts
| |- 📄 mockContentList.ts
| |- 📄 mockRequest.ts
| |- 📄 mockResponse.ts
|
| |- 📁 database
| |- 📁 migrations
| |- 📄 index.ts
| |- 📄 database.sqlite
| |- 📄 database.test.sqlite
|
| |- 📁 controllers
| |- 📄 UserController.ts
| |- 📄 MessageController.ts
|
| |- 📁 entities
| |- 📄 User.ts
|
| |- 📁 repositories
| |- 📄 UserRepository.ts
|
| |- 📁 services
| |- 📄 UserService.ts
|
| |- 📁 tests
| |- 📄 message.test.ts
| |- 📄 user.test.ts
|
|
|- 📄 .gitignore
|- 📄 package.json
|- 📄 app.ts
|- 📄 index.ts
|- 📄 router.ts

```

### Este projeto usa
- Node
- Typescript
- Jest
- SQLite
- TypeORM

### Como rodar o projeto

1 - Clone o repositório

2 - Instale todas as dependências

---
yarn install
---

4 - Acesse a rota principal

### Testando o projeto

#### Testes unitários

---
yarn test:unit
---

#### Testes de integração

1 - Rode a aplicação em modo de desenvolvimento

---
yarn run dev
---

1 - Rode os testes de integração no repositório /tests

---
yarn test:integration
---

### endpoints

**_GET_** /

Retorna uma mensagem de boas vindas

##### Exemplo

---
http://localhost:5000/
---

**_POST_** /user

Cria um novo usuário no banco de dados. Todos os campos são obrigatórios

##### Exemplo

---
body {
email: '[email protected]',
name: 'Nome do usuário'
}
---

**Desafios sugeridos**

- Usando os conceitos de TDD

[ ] Implementar uma rota que retorne todos os usuários cadastrados

[ ] Implementar uma mensagem de erro quando tentar cadastrar um usuário com os campos em branco

### Happy hacking!