У меня есть следующий компонент:
import React, { Component } from 'react';
export class Cars extends Component {
constructor(props) {
super(props);
this.state = {
activeSearch: true
};
}
componentDidMount() {
document.addEventListener('keydown', this.escFunction, false);
}
escFunction(event) {
if (event.keyCode === 27) this.skipCar();
}
skipCar() {
this.setState({ activeSearch: false });
}
render() {
return <div></div>;
}
}
Я написал следующие тесты, чтобы проверить, вызывается ли эта функция:
test('should close', () => {
let events = {};
document.addEventListener = jest.fn((event, cb) => {
events[event] = cb;
});
const wrapper = shallow(<Cars {...props} />);
const instance = wrapper.instance();
const spy = jest.spyOn(instance, 'skipCar');
events.keyDown({ keyCode: 27 });
expect(spy).toHaveBeenCalled();
expect(wrapper.state().activeSearch).toBe(false);
});
, но когда я запускаю этот тест, у меня появляется ошибка:
TypeError: events.keyDown is not a function
> 82 | events.keyDown({ keyCode: 27 });
| ^
Почему у меня эта ошибка ???? Как я могу запустить этот тест, чтобы проверить, запущен ли метод?