filipedeschamps / tabnews.com.br

Conteúdos para quem trabalha com Programação e Tecnologia.
https://tabnews.com.br
GNU General Public License v3.0
5.29k stars 387 forks source link

Problema com testes locais #1776

Closed kaioenzo closed 1 month ago

kaioenzo commented 3 months ago

Descrição

Eu tentei rodar o projeto localmente, seguindo as instruções do readme, mas tanto os testes como o projeto não são rodados.

npm test

> tabnews.com.br@1.0.0 test
> npm run concurrently -- --hide next -- run

> tabnews.com.br@1.0.0 preconcurrently
> kill-port 3000 && npm run services:up

Process on port 3000 killed

> tabnews.com.br@1.0.0 services:up
> npm run docker:compose -- up -d

> tabnews.com.br@1.0.0 docker:compose
> docker compose --env-file .env -f infra/docker-compose.development.yml up -d

[+] Running 2/0
 ✔ Container mailcatcher   Running                                                                                 0.0s
 ✔ Container postgres-dev  Running                                                                                 0.0s

> tabnews.com.br@1.0.0 concurrently
> concurrently -s first -P -k -n next,vitest "npm run next" "vitest {@}" --hide next -- run

--> Sending SIGTERM to other processes..
[vitest] vitest run exited with code SIGTERM`

Passos para reproduzir o problema

  1. Clone o projeto
  2. Rode o comando npm install
  3. Rode o comando npm test

Navegadores testados

No response

Possível solução

No response

Rafatcb commented 3 months ago

Enzo, depois de > concurrently -s first -P -k -n next,vitest "npm run next" "vitest {@}" --hide next -- run você usou CTRL+C para parar o processo?

E ao usar npm run dev, você consegue acessar a aplicação em http://localhost:3000/?

Aqui, sem interromper o processo, funciona normalmente:

npm run test

> tabnews.com.br@1.0.0 test
> npm run concurrently -- --hide next -- run

> tabnews.com.br@1.0.0 preconcurrently
> kill-port 3000 && npm run services:up

Process on port 3000 killed

> tabnews.com.br@1.0.0 services:up
> npm run docker:compose -- up -d

> tabnews.com.br@1.0.0 docker:compose
> docker compose --env-file .env -f infra/docker-compose.development.yml up -d

[+] Running 2/0
 ✔ Container postgres-dev  Running                                                                                            0.0s 
 ✔ Container mailcatcher   Running                                                                                            0.0s 

> tabnews.com.br@1.0.0 concurrently
> concurrently -s first -P -k -n next,vitest "npm run next" "vitest {@}" --hide next -- run

[vitest] 
[vitest]  RUN  v1.6.0 /home/rafael/Documents/Repositorios/tabnews.com.br
[vitest] 
[vitest]  ✓ tests/integration/api/v1/contents/post.test.js  (96 tests) 38587ms
[vitest]  ✓ tests/integration/api/v1/contents/[username]/[slug]/patch.test.js  (91 tests) 9861ms
...
kaioenzo commented 3 months ago

Para adicionar contexto, estou no wsl2. Não executo nenhum comando depois de iniciar o npm run test. Com o comando npm run start também não consigo rodar o projeto:

npm run dev

> tabnews.com.br@1.0.0 dev
> npm run services:seed && npm run next && npm run services:stop

> tabnews.com.br@1.0.0 services:seed
> kill-port 3000 && npm run services:up && npm run migration:run && npm run migration:seed

Process on port 3000 killed

> tabnews.com.br@1.0.0 services:up
> npm run docker:compose -- up -d

> tabnews.com.br@1.0.0 docker:compose
> docker compose --env-file .env -f infra/docker-compose.development.yml up -d

[+] Running 2/0
 ✔ Container postgres-dev  Running                                                                                 0.0s
 ✔ Container mailcatcher   Running                                                                                 0.0s

> tabnews.com.br@1.0.0 migration:run
> node -r dotenv-expand/config infra/scripts/wait-for-db-connection-ready.js && node-pg-migrate up --envPath ./.env -m infra/migrations/ 2>migrations.log

health check postgres:  /var/run/postgresql:5432 - accepting connections

No migrations to run!
Migrations complete!

> tabnews.com.br@1.0.0 migration:seed
> node -r dotenv-expand/config infra/scripts/seed-database.js

> Seeding database...
------------------------------
> You can now Login to TabNews using the following credentials:
> "admin@admin.com" + "password"
> "user@user.com" + "password"
------------------------------

> Creating Firewall functions...
> Firewall functions created!

> Database seeded!

> tabnews.com.br@1.0.0 next
> next dev

  ▲ Next.js 14.2.4
  - Local:        http://localhost:3000
  - Environments: .env
  - Experiments (use with caution):
    · scrollRestoration

 ✓ Starting...

> tabnews.com.br@1.0.0 services:stop
> npm run docker:compose -- stop

> tabnews.com.br@1.0.0 docker:compose
> docker compose --env-file .env -f infra/docker-compose.development.yml stop

[+] Stopping 2/2
 ✔ Container mailcatcher   Stopped                                                                                 1.1s
 ✔ Container postgres-dev  Stopped
Rafatcb commented 3 months ago

Eu uso o Fedora para rodar o TabNews, mas também já rodei no Windows, sem WSL. Como nunca usei WSL, ficará mais difícil de te ajudar, principalmente por não acontecer nenhum erro.

Você já conseguiu rodar outro projeto em Next.js no WSL ou é a sua primeira vez?

Experimente usar esse comando:

npm run services:seed && npm run next

O npm run dev tem um && npm run services:stop ao final, que foi executado após o Starting ... no seu log. Não sei se foi porque o comando npm run next terminou, não teve nenhum log entre as duas operações.

Veja o final do meu log, como comparação::

> Database seeded!

> tabnews.com.br@1.0.0 next
> next dev

  ▲ Next.js 14.2.4
  - Local:        http://localhost:3000
  - Environments: .env
  - Experiments (use with caution):
    · scrollRestoration

 ✓ Starting...
 ✓ Ready in 2.1s
kaioenzo commented 3 months ago

Consegui rodar pelo terminal integrado do docker desktop. De fato no wsl parece ter algum problema que não consegui resolver.

aprendendofelipe commented 3 months ago

@kaioenzo, obrigado por reportar! 💪

Aparentemente o que está acontecendo é que o Next.js está sendo encerrado, e isso faz encerrar todo o resto. É preciso investigar o que está encerrando o Next. Se o teste que o @Rafatcb sugeriu também não funcionou, tente isto, por favor:

npm run services:up && npm run migration:run && npm run migration:seed && npm run next

Se isso também falhar, pode não ser algo com o TabNews. Tente descobrir se o problema é a porta 3000 ou o Next.js. Está conseguindo executar algum outro projeto Next.js em uma porta diferente? Consegue rodar qualquer outro projeto na porta 3000?


Aproveito para deixar público que estou trabalhando em uma melhoria que vai permitir a utilização de diferentes arquivos de variáveis de ambiente, o que vai facilitar subir os serviços com diferentes configurações, por exemplo mudando a porta do servidor Next.js

aprendendofelipe commented 2 months ago

@kaioenzo, descobriu mais alguma coisa?

Consegue fazer um teste usando a branch https://github.com/filipedeschamps/tabnews.com.br/tree/tabnews-config ?

Daí pode usar os comandos normais npm run dev ou npm run test 🤝💪