У меня есть следующий компонент реагирования (.jsx)
@observable isVisible = true;
handleVisibility() {
this.isVisible = !this.isVisible;
}
render() {
return <div
...
onMouseEnter={event => this.handleVisibility(event)}
onMouseLeave={event => this.handleVisibility(event)}
</div>;
}
ComponentListElement.propTypes = {
componentName: PropTypes.string.isRequired,
id: PropTypes.string.isRequired,
};
ComponentListElement.wrappedComponent.propTypes = {
schema: PropTypes.object.isRequired,
};
Я пытаюсь создать тест, чтобы увидеть, вызываются ли обработчики событий onMouseEnter и onMouseLeave.Я пробовал дюжину способов, но ничего не работает.Наиболее распространенный метод, который я нашел в Интернете, чтобы сделать это, был такой:
// Init
const handleVisibility = sinon.spy();
// Action
const wrapper = mount(<Provider schema={mockSchema}>
<ComponentListElement
componentName="ComponentName1"
id="1"
onMouseLeave={handleVisibility}/>
</Provider>);
wrapper.find("div.my-element").at(0).simulate("mouseLeave");
// Test
expect(handleVisibility.callCount).to.be.equal(1);
, но он также не работает ... даже при том, что логика этого кажется полностью здоровой.Есть мысли о том, как заставить это работать?