Среда тестирования по умолчанию для Jest
- это среда, похожая на браузер, предоставляемая jsdom
.
jsdom
, реализует большую часть того, что может обеспечить настоящий браузер (включаяглобальный window
объект), но он не реализует все.
Специально для этого случая jsdom
не реализует window.alert
, а вместо этого выдает Error
, когда он вызывается как может бытьв исходном коде здесь .
Пока вы знаете, почему ваш код запускает alert
, и знаете, что ваш тест работает правильно, кроме Error
тогда вы можете подавить Error
, предоставив пустую реализацию для window.alert
:
test("login api resolves true", () => {
const jsdomAlert = window.alert; // remember the jsdom alert
window.alert = () => {}; // provide an empty implementation for window.alert
return expect(AuthManager.login("test", "test")).resolves.toMatchObject(
expect.objectContaining({
accessToken: expect.any(String),
email: expect.any(String),
expiresIn: expect.any(Number),
refreshToken: expect.any(String),
userFullName: expect.any(String),
userId: expect.any(Number)
})
); // SUCCESS
window.alert = jsdomAlert; // restore the jsdom alert
});