Я работаю в проекте Angular 8.
Я хотел, чтобы окно выдавало запрос подтверждения, если пользователь пытается уйти с сайта, я смог сделать это, добавив эту функцию к моему компоненту.
@HostListener("window:beforeunload", ["$event"])
unloadNotification($event: any) {
if (this.confirmNavigation) {
$event.returnValue = true;
}
}
Теперь я пытаюсь понять, как выполнить модульное тестирование, и я не уверен, как это сделать. Нужно ли мне издеваться над окном, чтобы вызвать событие? Могу ли я создать какой-то объект события и вызвать unloadNotification
с ним напрямую (хотя не уверен, как проверить результат)?
Я даже уверен, что если это необходимо при модульном тестировании, будет ли это быть скорее интеграционным тестом?
Мне также нужно убедиться, что это приглашение фактически не запускается, когда я запускаю тесты в карме (потому что это остановит тест). Так что мне нужно поиздеваться над этим?
Кроме того, я думаю, что хочу уничтожить этого слушателя в afterEach из моих тестов, но не знаю, как это сделать.
Любая помощь будет принята с благодарностью.