1
resposta

Erro no DELETE Continua sendo criado no banco de dados

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

apos fazer o teste para verificar se o objeto foi deleta, vi que o objeto continua sendo criado no banco de dados. Peguei o mesmo codigo do git para fazer o teste( na possibilidade de algum erro meu ). Mas a respota foi a mesma, o Objeto com as propriedades continua sendo criado no banco de dados

PACKAGE.JSON

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software