Olá, Carlos.
Tudo bem?
Pelo que entendi, você está enfrentando um problema com um teste de DELETE em sua API Node.js, onde, mesmo após o teste ser executado, o objeto que deveria ser deletado ainda permanece no banco de dados. Vamos tentar resolver isso juntos!
Primeiramente, é importante garantir que a rota de DELETE esteja implementada corretamente na sua API e que ela realmente esteja removendo o objeto do banco de dados quando chamada. Se o código estiver correto e o objeto ainda assim não for removido durante os testes, é possível que o problema esteja relacionado ao gerenciamento do estado do banco de dados durante os testes.
Uma prática comum em testes de integração é utilizar um banco de dados separado para os testes, ou limpar o banco de dados antes ou depois de cada teste ser executado, para garantir que o estado do banco de dados não interfira nos resultados dos testes. Isso pode ser feito utilizando hooks como beforeEach
ou afterEach
no Jest, por exemplo.
No seu caso, se você estiver utilizando um banco de dados real para os testes, você pode querer adicionar um passo no afterEach
para deletar qualquer dado que tenha sido criado durante o teste. Aqui está um exemplo de como você poderia fazer isso:
afterEach(async () => {
// Aqui você colocaria o código para deletar o objeto criado no banco de dados
// Isso pode ser feito chamando a função que deleta o objeto diretamente
// ou fazendo uma requisição DELETE para a rota de teste, se isso fizer sentido
await deleteTestObjectFromDatabase();
server.close();
});
Além disso, certifique-se de que a variável idResposta
está sendo corretamente atribuída com o ID do objeto criado no teste de POST e que esse ID está sendo usado no teste de DELETE para remover o objeto correto.
Se você estiver utilizando um banco de dados em memória ou uma instância separada para os testes, certifique-se de que as configurações estão corretas e que o banco de dados está sendo reiniciado ou limpo entre os testes.
Espero que essas sugestões ajudem a resolver o problema que você está enfrentando. Se após essas verificações o problema persistir, é importante revisar o código da API para garantir que a rota de DELETE está funcionando como esperado fora do contexto dos testes.
Qualquer coisa compartilha o seu código completo aqui com a gente, pode colar ele aqui mesmo sem ser print, que assim conseguimos copiar, testar e dar uma resposta mais assertiva. Caso tenha o seu projeto no GitHub, pode compartilhar o repositório também.
Espero ter ajudado e bons estudos!