Я пытаюсь проверить код, который отправляет в родительское окно сообщение.
Код работает, как и ожидалось, но проверка не выполняется.Я отладил тест, и postMessage
действительно вызывается, но шпион не вызывается.
let spyPostMessage;
beforeEach(function () {
spyPostMessage = jasmine.createSpy('message');
window.parent.addEventListener('message', () => {
spyPostMessage();
window.parent.removeEventListener('message');
});
});
Тест:
it('should post reload to parent window', function () {
func.call(this, params);
expect(spyPostMessage).toHaveBeenCalled();
});
func
:
func(params) {
// some code
window.parent.postMessage('reloadPage', '*'); // this line is invoked
// some code
}
В результате получается Expected spy message to have been called
, хотя я отлаживал его и вызывался postMessage
.
Что я делаю не так?