A idéia é testar os fundamentos de testing
, aplicando o que foi visto no
JS Expert - Módulo 02
num projeto simples e divertido.
Consumindo a PokeAPI, faça uma API que retorne 3 pokemóns aleatórios para formar seu time inicial numa jornada pokemon.
GET /
Deve ser a rota padrão da aplicação ao tentar acessar qualquer rota inexistente. (ex.: /hi
, /hello
)
GET /team
Deve retornar um array com 3 pokemóns aleatórios, contendo seus respectivos name
e moves
, (mostrando apenas um array de strings com os 3 primeiros moves
presentes na API. ex.: ["mega-punch","fire-punch","thunder-punch"]
).
- mocks
- stubs
- spies
- testes end-2-end
- testes unitários
- 100% de code coverage
- TDD e BDD, será que rola? Acho que vale a tentativa!
- Que tal consumir a API sem usar libs externas? o módulo
https
do node pode ser bem interessante!
Sinta-se livre pra desenvolver sua solução da melhor maneira possível, e caso já queira uma ajuda nos patterns e em como organizar as idéias, aqui vai:
project
│ README.md
│ .nycrc.json
│ package.json
│
└───src
│ │ api.js
│ │
│ └───repository
│ │ │ teamRepository.js
│ │
│ └───service
│ │ teamService.js
│
└───test
│ └───e2e
│ │ │ api.test.js
│ │
│ └───mocks
│ │ │ valid-team.json
│ │ │ ...
│ │
│ └───unit
│ │ teamRepository.test.js
│ │ teamService.test.js
│
└───coverage
│ │ ...
URLs Úteis ao desafio:
-
Web API
- Deve ter uma rota raiz usada como fallback.
- Deve ter uma rota de
/team
, onde:- Deve consumir a PokeAPI e selecionar 3 pokemóns aleatórios
- Deve consumir a PokeAPI para obter mais informações sobre os pokemóns escolhidos
- Deve retornar um objeto JSON conetendo um array com 3 pokemóns, cada um com seus respectivos
name (String)
emoves (String[])
-
Testes
- Deve ter cobertura de testes end-2-end e unitários
- 100% de code coverage
-
Inicialize um repósitório git com um arquivo README.md contendo seu nome, quais tópicos do checklist foram implementados e, caso queira, um breve resumo de cada tópico.
-
Crie o projeto e os testes.
-
Coloque as instruções de como configurar e executar seu projeto e os testes no README.md (não se esqueça do coverage com o
nyc
). -
Envie o link no canal
#desafios-jsexpert
da nossa comunidade no discord.
Se você está pegando esse desafio na estréia, corre lá e envia pra gente até Quarta-feira, 10 de novembro de 2021 (10/11/2021)!