Я пытаюсь проверить, прокручивается ли элемент iframe в представление с использованием jest, но по какой-то причине я не могу заставить его работать - PullRequest
0 голосов
/ 20 сентября 2019

Вот метод и тест, который я написал для него.Вы можете видеть, что в комментариях я пытаюсь объяснить свой мыслительный процесс относительно того, что происходит, когда срабатывает метод handleSetRef().В верхней части страницы модульного теста я смоделировал iframe, так как согласно handleSetRef, element.scrollIntoView() будет вызываться, только если рассматриваемый элемент является iframe.Я не уверен, является ли это правильным подходом вообще, потому что я очень плохо знаком с программированием в целом.

handleSetRef = (element) => {
    if (element && isIframe) {
        element.scrollIntoView();
    }
};
    // this code lives at the top of my Component.test.js file
    const MockContent = () => <iframe title="title" />;

it('should scroll a given element into view when handleSetRef fires', () => {
    const scrollIntoViewMock = jest.fn();
    // trying to access the scrollIntoView method on the Element base class
    window.Element.prototype.scrollIntoView = scrollIntoViewMock;
    // setting default props for the component to test
    const mounted = true;
    const title = 'title';
    const props = { mounted, title };
    const wrapper = createWrapper(Component, props);
    // execute the method with the element as the param
    wrapper.handleSetRef(<MockContent />);

    expect(scrollIntoViewMock).toHaveBeenCalled();
});

Ожидаемый результат: scrollIntoView() вызывается для элемента.Полученный результат: ожидалось, что scrollIntoViewMock был вызван, но это не так.Все еще в недоумении, как решить эту головоломку.Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...