Skip to content

Javascript Expert training first code challenge complete: An API that gives you a random Pokemon starter team.

Notifications You must be signed in to change notification settings

rvconessa/jsexpert-exercicio01-pokeapi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Story: Seu primeiro time pokemon

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.

Requisitos

Funcionalidades

  1. GET /

Deve ser a rota padrão da aplicação ao tentar acessar qualquer rota inexistente. (ex.: /hi, /hello)

  1. 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"]).

Testes

  • mocks
  • stubs
  • spies
  • testes end-2-end
  • testes unitários
  • 100% de code coverage

Extras

  • 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!

Dicas

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:

Arquitetura esperada

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
│   │   ...

Entendendo a PokeAPI

URLs Úteis ao desafio:

Checklist features

  • 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) e moves (String[])
  • Testes

    • Deve ter cobertura de testes end-2-end e unitários
    • 100% de code coverage

Submissão

  1. 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.

  2. Crie o projeto e os testes.

  3. 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).

  4. Envie o link no canal #desafios-jsexpert da nossa comunidade no discord.

Executar Projeto

Rodar o projeto:

npm run start

Rodar os tests:

npm run test

Rodar os tests como modo watch:

npm run test:dev

Rodar o coverage dos tests:

npm run test:cov

About

Javascript Expert training first code challenge complete: An API that gives you a random Pokemon starter team.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%