Este projeto realiza testes de integração automatizados para a API Fakerestapi, focando nos endpoints relacionados a Books. Utiliza as ferramentas Jest, PactumJS, Prettier, ESLint e integração com SonarQube para garantir qualidade, padronização e cobertura dos testes.
- Jest - Test runner
- PactumJS - Framework para testes de API
- Prettier - Formatação de código
- ESLint - Linter para JavaScript
- SonarQube - Análise de qualidade de código
Os principais endpoints testados deste projeto são:
GET /api/v1/Books
- Lista todos os livrosPOST /api/v1/Books
- Cria um novo livroGET /api/v1/Books/{id}
- Busca um livro pelo IDPUT /api/v1/Books/{id}
- Atualiza um livro pelo IDDELETE /api/v1/Books/{id}
- Remove um livro pelo ID
Também podem ser testados endpoints relacionados a autores e capas de livros, como:
GET /api/v1/Authors/authors/books/{idBook}
- Lista autores de um livroGET /api/v1/CoverPhotos/books/covers/{idBook}
- Lista capas de um livro
A documentação completa da API pode ser encontrada aqui.
- Node.js
v20
ou superior - npm
Clone o repositório e instale as dependências:
git clone https://github.com/seu-usuario/seu-repo.git
cd seu-repo
npm install
Execute os testes com o comando:
npm test
Ou, para rodar o pipeline completo (incluindo lint e prettier):
npm run ci
Após a execução, os relatórios de testes podem ser encontrados na pasta ./output
.
A análise de qualidade do código é feita via SonarQube. Consulte o pipeline CI para detalhes.
Abaixo estão as explicações dos testes implementados no arquivo fakerestapi.spec.ts
:
-
Buscar todos os livros:
Verifica se a API retorna uma lista de livros no formato esperado. -
Buscar um livro pelo ID:
Garante que é possível recuperar um livro específico pelo seu ID. -
Buscar um livro inexistente:
Testa se a API retorna o status 404 ao buscar um livro que não existe. -
Criar um novo livro:
Valida se um novo livro pode ser criado com sucesso e se os dados retornados estão corretos. -
Criar um livro com dados inválidos:
Verifica se a API retorna erro ao tentar criar um livro com dados inválidos. -
Atualizar um livro existente:
Testa se é possível atualizar os dados de um livro já cadastrado. -
Deletar um livro:
Garante que um livro pode ser removido da base de dados. -
Buscar autores de um livro:
Verifica se a API retorna corretamente os autores associados a um livro. -
Buscar autores de um livro inexistente:
Testa se a API retorna um array vazio ao buscar autores de um livro que não existe. -
Buscar capas de um livro:
Valida se a API retorna as capas associadas a um livro específico.