Как шпионить за postMessage в родительское окно в Жасмин? - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь проверить код, который отправляет в родительское окно сообщение.
Код работает, как и ожидалось, но проверка не выполняется.Я отладил тест, и 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.

Что я делаю не так?

...