У меня есть функция, которая выполняет следующее (ПРИМЕЧАНИЕ: здесь используется машинописный текст, следовательно, определения типов вы видите в аргументах) ...
function scroll(target: HTMLElement, {posX, posY}: ScrollPosition): void {
if (target instanceof window.Window) {
target.scrollTo(posX, posY);
} else {
/* eslint-disable no-param-reassign */
target.scrollLeft = posX;
target.scrollTop = posY;
/* eslint-enable no-param-reassign */
}
}
При текущей настройке jest, которая у меня есть, она охватывает оператор else, но мне также нужно проверить, когда target instanceof window.Window
. Это кое-что из того, что у меня есть, по крайней мере, для того, чтобы шпионить за scrollTo ...
const spyScrollTo = jest.fn();
beforeEach(() => {
Object.defineProperty(global.window, 'scrollTo', {value: spyScrollTo});
spyScrollTo.mockClear();
});
... но я не продвинулся достаточно далеко, чтобы понять, как сделать цель проходит как часть window.Window
. Я безуспешно пытался возиться с библиотекой jsdom.