Olá, Leonardo. Como vai?
Entendo perfeitamente a sua frustração. Quando estamos empolgados para aprender uma nova ferramenta como o Playwright, encontrar um erro logo no ambiente de apoio quebra o fluxo de estudos e é realmente cansativo ter que atuar como "detetive" para corrigir algo que deveria estar pronto para uso. Sinto muito que você esteja passando por essa experiência novamente.
O erro que você compartilhou, o SQLITE_CONSTRAINT: FOREIGN KEY constraint failed, indica uma violação de chave estrangeira no banco de dados SQLite da API. Isso acontece quando o sistema tenta inserir ou deletar um dado que depende de outro que não existe (ou que ainda não foi vinculado corretamente).
Como você está utilizando o projeto exatamente como foi baixado, aqui estão as causas mais comuns e como você pode resolver isso rapidamente para voltar ao foco do curso (o Playwright):
1. Ordem de Cadastro e Dependências
Muitas vezes, a API do projeto (neste caso, a Jornada Milhas) exige que uma entidade "pai" exista antes da "filha". Se você tentou cadastrar um depoimento ou uma milha antes de ter um usuário ou um destino cadastrado, o SQLite barrará a operação.
- Sugestão: Tente realizar os cadastros seguindo exatamente a ordem lógica do negócio: primeiro o usuário/perfil, depois as entidades que dependem dele.
2. Reset do Banco de Dados (Solução Rápida)
Como o SQLite é um arquivo local (geralmente um arquivo .sqlite ou .db), ele pode ter vindo com alguma inconsistência ou resquício de dados do ambiente de desenvolvimento.
- Vá até a pasta da API (
jornada-milhas-api-main). - Localize o arquivo do banco de dados (provavelmente algo como
database.sqlite). - Exclua esse arquivo.
- Reinicie a API. Na maioria das vezes, o TypeORM (que é o que a mensagem de erro sugere que a API usa) recriará o arquivo do zero, limpo e com as tabelas corretas.
3. Versão do Node.js
Embora o erro seja de SQL, inconsistências entre versões do Node.js e drivers de banco de dados podem causar comportamentos estranhos em APIs NestJS. Verifique se você está utilizando a versão de Node recomendada no arquivo README.md do projeto ou a versão LTS.
Dica de Amigo:
Como o foco deste curso específico são os testes End-to-End (E2E) com Playwright, se a API continuar apresentando problemas de banco, você também pode tentar rodar o comando de migração (caso o projeto possua) dentro da pasta da API:
npm run migration:run
Ou, em casos extremos, verificar se há um comando de seed para popular o banco automaticamente:
npm run seed
Agradeço por compartilhar o link do outro tópico. Isso ajuda a mapear que o problema pode estar no pacote de dados iniciais do projeto. Vou reforçar esse ponto para que a equipe de conteúdo dê uma olhada na integridade desses arquivos de apoio.
Espero que possa ter lhe ajudado!