Нужно сделать покрытие тестом следующего кода:
useEffect(() => {
const listener = (event) => {
console.log('listener');
console.log('event', event);
event.preventDefault();
event.stopPropagation();
};
window.addEventListener('dragover', listener);
window.addEventListener('drop', listener);
return () => {
window.removeEventListener('dragover', listener);
window.removeEventListener('drop', listener);
};
}, []);
написал след тест:
it('should handle drag event', async function () {
const map = {};
window.addEventListener = jest.fn((event, callback) => {
map[event] = callback;
});
const callback = jest.fn();
render(<FileInput value={[]} onChange={callback} />);
map.drop({ preventDefault: () => {}, stopPropagation: () => {} });
expect(window.addEventListener).toHaveBeenCalledWith('drop');
});
Почему данный тест возвращает
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)
Expected: "drop"
Received
1: "error", [Function handleWindowError]
2: "error", [Function handleWindowError]
3: "error", [Function handleWindowError]
Number of calls: 6
?