@GNG999

Почему тест возвращает «error»?

Нужно сделать покрытие тестом следующего кода:

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

?
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы