add timeout to wait trigger result

This commit is contained in:
Eden Wang 2018-07-29 10:34:43 +08:00 committed by 偏右
parent 84e995ff63
commit 522aee18c3

View File

@ -4,6 +4,8 @@ import Tooltip from '..';
import Button from '../../button'; import Button from '../../button';
import DatePicker from '../../date-picker'; import DatePicker from '../../date-picker';
const delay = timeout => new Promise(resolve => setTimeout(resolve, timeout));
describe('Tooltip', () => { describe('Tooltip', () => {
it('check `onVisibleChange` arguments', () => { it('check `onVisibleChange` arguments', () => {
const onVisibleChange = jest.fn(); const onVisibleChange = jest.fn();
@ -176,14 +178,12 @@ describe('Tooltip', () => {
jest.dontMock('rc-trigger', suit); jest.dontMock('rc-trigger', suit);
}); });
it('should works for date picker', () => { it('should works for date picker', async () => {
const onVisibleChange = jest.fn(); const onVisibleChange = jest.fn();
const wrapper = mount( const wrapper = mount(
<Tooltip <Tooltip
title="" title="date picker"
mouseEnterDelay={0}
mouseLeaveDelay={0}
onVisibleChange={onVisibleChange} onVisibleChange={onVisibleChange}
> >
<DatePicker /> <DatePicker />
@ -193,10 +193,12 @@ describe('Tooltip', () => {
expect(wrapper.find('span.ant-calendar-picker')).toHaveLength(1); expect(wrapper.find('span.ant-calendar-picker')).toHaveLength(1);
const picker = wrapper.find('span.ant-calendar-picker').at(0); const picker = wrapper.find('span.ant-calendar-picker').at(0);
picker.simulate('mouseenter'); picker.simulate('mouseenter');
await delay(100);
expect(onVisibleChange).toBeCalledWith(true); expect(onVisibleChange).toBeCalledWith(true);
expect(wrapper.instance().tooltip.props.visible).toBe(true); expect(wrapper.instance().tooltip.props.visible).toBe(true);
picker.simulate('mouseleave'); picker.simulate('mouseleave');
await delay(100);
expect(onVisibleChange).toBeCalledWith(false); expect(onVisibleChange).toBeCalledWith(false);
expect(wrapper.instance().tooltip.props.visible).toBe(false); expect(wrapper.instance().tooltip.props.visible).toBe(false);
}); });