filipedeschamps / tabnews.com.br
- четверг, 24 ноября 2022 г. в 00:37:03
Conteúdos de valor concreto para quem vive de programação e tecnologia.
Rodar o TabNews em sua máquina local é uma tarefa extremamente simples.
Você precisa ter duas principais dependências instaladas:
Utiliza nvm
? Então pode executar nvm install
na pasta do projeto para instalar e utilizar a versão mais apropriada do Node.js.
Então após baixar o repositório, não se esqueça de instalar as dependências locais do projeto:
npm install
Para rodar o projeto localmente, basta rodar o comando abaixo:
npm run dev
Isto irá automaticamente rodar serviços como Banco de dados (incluindo as Migrations), Servidor de Email e irá expor um Serviço Web (Frontend e API) no seguinte endereço:
http://localhost:3000/
http://localhost:3000/api/v1/status
Observações:
CTRL+C
, que é o padrão dos terminais para matar processos..env
encontrado na raiz do projeto, como por exemplo o endereço e credenciais do Banco de Dados local ou o Frontend do Serviço de Email.No ambiente de desenvolvimento você poderá tanto criar usuários manualmente (inclusive para receber e testar o email de ativação), quanto utilizar usuários pré-cadastrados e que já foram ativados para sua conveniência.
teste@teste.com
Por padrão, ao rodar o comando npm run dev
será injetado dois usuários ativados, um com features padrões e outro com features administrativas como a habilidade de rodar as Migrations usando a API ou alterar o conteúdo de outros usuários. Segue abaixo as credenciais destes dois usuários ("email"
+ "senha"
):
"admin@admin.com"
+ "password"
"user@user.com"
+ "password"
Há várias formas de rodar os testes dependendo do que você deseja fazer, mas o primeiro passo antes de fazer qualquer alteração no projeto é rodar os testes de forma geral para se certificar que tudo está passando como esperado. O comando abaixo irá rodar todos os serviços necessários, rodar os testes e em seguida derrubar todos os serviços.
npm test
Caso queira manter os serviços e testes rodando enquanto desenvolve (e rodando novamente a cada alteração), use o comando abaixo:
npm run test:watch:services
Os logs do Serviço Web e Jest (dos testes) irão se misturar, então caso queira rodar eles de forma separada, abra dois terminais separados e rode o seguinte:
# Terminal 1
npm run dev
# Terminal 2
npm run test:watch
Caso não queira dar watch
em todos os testes e queira isolar apenas 1 arquivo de teste (ou um grupo de testes), você pode utilizar um simples regex
para dar match
no que quiser, por exemplo:
# Rodar apenas /tests/api/v1/_use-cases/registration-flow.test.js
npm run test:watch -- registration-flow
# Rodar todos os testes de "users" da api "v1"
npm run test:watch -- v1/users/
# Rodar apenas /tests/api/v1/users/[username]/patch.test.js
npm run test:watch -- username./patch
# tests/integration/api/v1/contents/[username]/[slug]/get.test.js
npm run test:watch -- contents/.username./.slug./get
Observações:
/
ou [
pode mudar, mas você poderá usar regex
para evitar usar esses caracteres, como por exemplo utilizar o .
que representa o match
com qualquer caractere. Isto foi utilizado nos exemplos acima para evitar os caracteres [
e ]
dos arquivos.Você pode utilizar o script migration:create
, por exemplo:
npm run migration:create alter table users add tabcoins
Isto irá resultar em:
Created migration -- ./infra/migrations/1655399502254_alter-table-users-add-tabcoins.js
Caso esta nova migração esteja válida, ela será automaticamente executada na próxima vez que você rodar o comando npm run dev
. Caso contrário, o serviço não irá subir e os logs de erro estarão registrados no arquivo migrations.log
encontrado na raiz do projeto.
Após finalizar suas alterações e se certificar que todos os testes estão passando com o comando geral npm test
, chegou a hora de fazer o commit das suas alterações.
Para ser auxiliado no padrão de commit que utilizamos, rode o comando abaixo e siga as instruções:
npm run commit