Обновлена библиотека Jest на v25, и все модульные тесты, которые проверяли изменение местоположения, дают сбой.
Я проверил пару проблем, открытых на jest repo , но на самом деле я не понял, как это можно исправить.
Код, вызывающий location.assign
, прерывается со следующей ошибкой:
Error: Not implemented: navigation (except hash changes)
69 | // window.location.href = url;
> 70 | window.location.assign(url);
Я полагаю, что объект окна Jest JSDOM больше не должен рассматриваться как реальное окно браузера в отношении изменения местоположения.
Любое предложение?
Я добавлю мои выводы здесь:
- Навигация в тесты не работают. Все эти методы, которые работают в браузере, не реализованы в окне JSDom:
Для исправления неудачных тестов я использовал:
window.history.pushState({}, "title", "/testJest");
delete window.location;
window.location = { assign: jest.fn() };
it("should navigate to the new URL", () => {
const myUrl = "http://some.url";
expect(window.location.assign).toHaveBeenCalledWith(myUrl);
});