guoconde / sing-me-a-song

Testes unitários, integração e e2e

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sing me a Song

Descritivo:

Já pediu para alguém alguma recomendação de música? Chegou a hora de transformar isso em código. Nessa semana, você vai construir a rede Sing me a Song. Ou melhor, os testes desta rede!

Sing me a song é uma aplicação para recomendação anômina de músicas. Quanto mais as pessoas curtirem uma recomendação, maior a chance dela ser recomendada para outras pessoas 🙂

Neste projeto você receberá um front-end e back-end completamente implementados! 😱

Seu trabalho será implementar os testes do projeto 🙂

Requisitos

  • Siga as boas práticas de construção de projetos (ESLint e/ou Prettier, Variáveis de Ambiente e Readme)
  • Escreva testes ponta a ponta (E2E) para os fluxos de uso do sistema
  • Escreva testes de integração para todas as rotas
  • Escreva testes unitários para a camada de Services com 100% de coverage
    • Atenção para mockar a camada de Repositories e dependências externas (dica: Math.random)

Comandos necessários:

Para executar a aplicação:

Clonar a aplicação para seu ambiente:

  • git clone

Instalar todas as dependências do projeto:

  • npm i (faça isso tanto para a pasta de front-end quanto back end - certifique-se que está rodando dentro da pasta correta)

Criar as migrações no ambiente de testes:

  • Acesse a pasta do back-end e rode o comando:
  • npm run migrate:test

Iniciar o servidor no ambiente de testes:

  • Ainda dentro da pasta do back-end rode o comando:
  • npm run dev:test

Rodar os testes do jest:

  • Ainda dentro da pasta do back-end rode o comando:
  • npm test
  • Acompanhe o terminal enquanto os testes são feitos.

Iniciar os testes de front-end com cypress:

  • Certifique-se que esta dentro da pasta do front-end e ja tenha instalado as dependências, como descrito na segunda instrução
  • Rode o comando abaixo para abrir a interface gráfica do crypress:
  • npx cypress open

Na plataforma do cypress escolha o teste que deseja iniciar e click na desejada:

  • downvote (para testar a função de dislike)
  • upvote (para testar a função de like)
  • home (para testar a função de inserir três recomendações de videos)
  • random (para testar a função receber uma recomendação aleatória)
  • top (para testar a função dos top videos)

Qualquer dúvida, problemas ou sugestões por favor entre em contato.

Tecnologias utilizadas:

css3 html5 react javascript typescript nodejs express git linux

About

Testes unitários, integração e e2e


Languages

Language:JavaScript 49.7%Language:TypeScript 43.0%Language:HTML 4.1%Language:CSS 3.1%Language:Shell 0.1%