2019-09-07 09:16:00 +00:00
|
|
|
import React from 'react';
|
2019-12-03 14:17:53 +00:00
|
|
|
import { mount } from 'enzyme';
|
2019-09-07 09:16:00 +00:00
|
|
|
import ContextMenu from '.';
|
|
|
|
|
2019-11-11 11:55:39 +00:00
|
|
|
const baseProps = {
|
|
|
|
options: []
|
|
|
|
}
|
|
|
|
|
2019-09-07 09:16:00 +00:00
|
|
|
describe('<ContextMenu />', () => {
|
|
|
|
it('renders without error', () => {
|
2019-11-11 11:55:39 +00:00
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
2019-09-07 09:16:00 +00:00
|
|
|
|
|
|
|
expect(wrapper).toExist();
|
|
|
|
});
|
2019-11-11 11:55:39 +00:00
|
|
|
|
|
|
|
it('componentWillUnmount() test unmount', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
|
|
|
|
wrapper.unmount();
|
|
|
|
|
|
|
|
expect(wrapper).toEqual(wrapper);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleClick() with change state to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
wrapper.setState({ visible: true });
|
|
|
|
instance.handleClick(new Event('click', { target: null }));
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toEqual(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleClick() to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.handleClick(new Event('click', { target: null }));
|
|
|
|
expect(wrapper.state('visible')).toEqual(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleScroll() with change state to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
wrapper.setState({ visible: true });
|
|
|
|
instance.handleScroll();
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toEqual(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleScroll() to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.handleScroll();
|
|
|
|
expect(wrapper.state('visible')).toEqual(false);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('render with options', () => {
|
|
|
|
const options = [
|
|
|
|
{ label: 'test' },
|
|
|
|
{ key: 2, label: 'test' },
|
|
|
|
false,
|
|
|
|
{ key: 4, label: 'test' }
|
|
|
|
];
|
|
|
|
|
|
|
|
const wrapper = mount(<ContextMenu options={options} />);
|
|
|
|
wrapper.setState({ visible: true });
|
|
|
|
|
|
|
|
expect(wrapper.props().options).toEqual(options);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleContextMenu() to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.handleContextMenu();
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toEqual(true);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('simulate handleContextMenu(e) to close context menu', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} />);
|
|
|
|
const instance = wrapper.instance();
|
|
|
|
|
|
|
|
instance.handleContextMenu(new Event('click', { target: null }));
|
|
|
|
|
|
|
|
expect(wrapper.state('visible')).toEqual(true);
|
|
|
|
});
|
2019-11-27 13:06:48 +00:00
|
|
|
|
|
|
|
it('accepts id', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} id="testId" />);
|
|
|
|
|
|
|
|
expect(wrapper.prop('id')).toEqual('testId');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('accepts className', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} className="test" />);
|
|
|
|
|
|
|
|
expect(wrapper.prop('className')).toEqual('test');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('accepts style', () => {
|
|
|
|
const wrapper = mount(<ContextMenu {...baseProps} style={{ color: 'red' }} />);
|
|
|
|
|
|
|
|
wrapper.setState({visible: true});
|
|
|
|
|
|
|
|
expect(wrapper.getDOMNode().style).toHaveProperty('color', 'red');
|
|
|
|
});
|
2019-09-07 09:16:00 +00:00
|
|
|
});
|