Introdução
  • Apresentação
Ambiente e produtividade com VSCode
  • Instalando o NodeJS
  • Instalando o VSCode
  • Executando o Node
  • Themes
  • Fonts
  • Emmet
  • Atalhos
  • Snippets
  • Bracket Pair Colorizer
  • vscode-icons
  • gitlens
  • TODO Tree
  • Lint
Iniciando a API
  • Devo criar o projeto
  • Devo conhecer o básico das assertivas do Jest
  • Deve responder na porta 3001
  • Deve responder na raiz
  • Devo trabalhar no modo seguro
/users
  • Deve listar os usuários
  • Deve inserir usuário com sucesso
  • Devo organizar os arquivos
  • Devo criar arquivo de rotas
  • Devo instalar o postgres
  • Devo criar estrutura da tabela de usuários
  • Devo refatorar para usar banco de dados
  • Devo logar consultas
  • Devo separar camada de serviço
  • Não deve inserir usuário sem nome
  • Não deve inserir usuário sem email
  • Não deve inserir usuário sem senha
  • Não deve inserir usuário com email já existente
/accounts
  • Devo criar estrutura da tabela de contas
  • Deve inserir uma conta com sucesso
  • Deve listar todas as contas
  • Deve retornar uma conta por ID
  • Deve alterar uma conta
  • Deve remover uma conta
  • Não deve inserir uma conta sem nome
  • Devo gerenciar os erros
  • Devo entender os middlewares do express
  • Devo gerenciar os erros de uma forma genérica
/auth
  • Deve armazenar senha criptografada
  • Deve receber token ao logar
  • Não deve autenticar usuário com senha errada
  • Não deve acessar uma rota protegida sem token
  • Deve criar usuário via signup
  • Deve enviar token nos testes
/accounts #2
  • Devo desacoplar o meu roteamento
  • Deve listar apenas as contas do usuário
  • Não deve inserir uma conta com nome duplicado, para o mesmo usuário
  • Não deve retornar uma conta de outro usuário
  • Não deve alterar ou remover a conta de outro usuário
/transactions
  • Devo criar esturtura da tabela de transações
  • Deve listar apenas as transações do usuário
  • Devo criar snippets customizados
  • Deve inserir uma transação com sucesso
  • Deve retornar uma transação por ID
  • Deve alterar uma transação
  • Deve remover uma transação
  • Não deve manipular transação de outro usuário
  • Deve ajustar o sinal das transações
  • Deve validar inserção da transação
  • Devo aprender a reusar código
  • Não deve remover uma conta com transação
  • Devo analisar desempenho dos testes
/transfers
  • Devo criar estrutura da tabela de transferências
  • Devo configurar a massa externa
  • Deve listar apenas as transferências do usuário
  • Deve inserir uma transferência com sucesso
  • Ao salvar uma transferência válida...
  • Ao tentar salvar uma transferência inválida...
  • Devo retornar uma transferência por ID
  • Ao alterar uma transferência válida...
  • Ao tentar alterar uma transferência inválida...
  • Devo fazer a validação via middleware
  • Ao remover uma transferência...
  • Não deve permitir manipular recursos de outros usuários
/balance
  • Devo preparar a massa do saldo
  • Ao calcular o saldo do usuário...
  • Deve calcular o saldo
  • Devo resolver problemas
Cobertura
  • Devo me preocupar com cobertura?
  • Devo adicionar métrica de cobertura nos testes
  • Devo aumentar a confiança dos meus commits
Produção
  • Devo criar o ambiente de produção
  • Devo logar os eventos
  • Devo manter o servidor no ar