У меня есть функция handleClick, которая использует scrollBy для элемента, который получает свой первый аргумент, используя getBoundingClientRect.Я пытаюсь проверить это с помощью шутки / энзима.
class myClass extends Component {
...
...
handleClick () {
document.getElementById('first-id').scrollBy(document.getElementById('second-id').getBoundingClientRect().width, 0);
}
render() {
return (
<button className="my-button" onClick={this.handleClick()}>scroll</button>
);
}
}
Мой тест:
it('calls scrollBy with correct params', () => {
const props = {};
myClassWrapper = mount(<myClass {...props} />);
const scrollBySpy = jest.fn();
global.document.getElementById = jest.fn(() => ({ scrollBy: scrollBySpy }));
myClassWrapper.find('my-button').simulate('click');
// expect(scrollBySpy).toHaveBeenCalledWith()
});
Я пытаюсь проверить, что scrollBy вызывается с правильными параметрами, но я получаю следующую ошибку при запуске этого теста:
Error: Uncaught [TypeError: document.getElementById(...).getBoundingClientRect is not a function]
Извините, если на этот вопрос уже был дан ответ, но я не вижу ничего, что отвечало бы моему сценарию.Заранее спасибо.