web-dev-qa-db-fra.com

Comment tester le href d'ancrage avec React-Testing-Library

J'essaie de tester ma balise d'ancrage. Une fois que je clique dessus, je veux voir si le window.location.href c'est ce que j'attends.

J'ai essayé de rendre l'ancre, de cliquer dessus, puis de tester window.location.href:

test('should navigate to ... when link is clicked', () => {
  const { getByText } = render(<a href="https://test.com">Click Me</a>);

  const link = getByText('Click Me');

  fireEvent.click(link);

  expect(window.location.href).toBe("https://www.test.com/");
});

Je m'attends à ce que le test passe, mais à la place le window.location.href est juste "http://localhost/" ce qui signifie qu'il n'est pas mis à jour pour une raison quelconque. J'ai même essayé d'envelopper mes attentes avec await wait, mais cela n'a pas fonctionné non plus. Je ne trouve pas beaucoup d'informations sur le test des ancres avec react-testing-library. Il y a peut-être même une meilleure façon de les tester que ce que je fais. ???? ‍♂️

4
jaypee

Vous pouvez simplement l'utiliser à la place:

expect(getByText("Click Me").href).toBe("https://www.test.com/")
0
Johnson Chinonso