1
resposta

[Dúvida] erro: received value must be an HTMLElement or an SVGElement

Estou recebendo este erro, alguém sabe o que há?

received value must be an HTMLElement or an SVGElement.

Consegui rodar o teste apenas usando estes comandos:

// const mensagemDeErro = screen.getByRole("alert");
  const mensagemDeErro = screen.getByText(
    "Nomes duplicados não são permitidos"
  );

  // expect(mensagemDeErro.textContent).toHaveValue(
  //   "Nomes duplicados não são permitidos"
  // );
  expect(mensagemDeErro).toBeTruthy();

Mas gostaria de entender porque do outro jeito não funcionou.

1 resposta

Olá Beatriz!

Esse erro ocorre porque o expect está tentando validar o valor de uma string, não de um elemento HTML ou SVG. Isso acontece porque mensagemDeErro.textContent retorna uma string, e o que você realmente precisa verificar é o conteúdo do elemento.

Espero ter ajudado! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!