ant-design-vue/components/date-picker/__tests__/RangePicker.test.js

73 lines
2.0 KiB
JavaScript
Raw Normal View History

2019-01-12 03:33:27 +00:00
import { mount } from '@vue/test-utils';
import { asyncExpect } from '@/tests/utils';
2021-08-26 14:29:46 +00:00
import dayjs from 'dayjs';
2019-01-12 03:33:27 +00:00
import DatePicker from '../';
2021-08-26 14:29:46 +00:00
import { setMockDate, resetMockDate, sleep } from '../../../tests/utils';
import { openPicker, selectCell, closePicker } from './utils';
2019-01-12 03:33:27 +00:00
import focusTest from '../../../tests/shared/focusTest';
2018-06-09 05:14:14 +00:00
2019-01-12 03:33:27 +00:00
const { RangePicker } = DatePicker;
2018-06-09 05:14:14 +00:00
describe('RangePicker', () => {
2019-01-12 03:33:27 +00:00
focusTest(RangePicker);
2018-06-09 05:14:14 +00:00
beforeEach(() => {
2019-01-12 03:33:27 +00:00
document.body.outerHTML = '';
setMockDate();
});
2018-06-09 05:14:14 +00:00
afterEach(() => {
2019-01-12 03:33:27 +00:00
resetMockDate();
});
2018-06-09 05:14:14 +00:00
// issue: https://github.com/ant-design/ant-design/issues/5872
it('should not throw error when value is reset to `[]`', async () => {
2021-08-26 14:29:46 +00:00
const birthday = dayjs('2000-01-01', 'YYYY-MM-DD');
const wrapper = mount(
2019-01-12 03:33:27 +00:00
{
2021-08-26 14:29:46 +00:00
props: ['value'],
setup(props) {
return () => <RangePicker value={props.value} open />;
2019-01-12 03:33:27 +00:00
},
2018-06-09 05:14:14 +00:00
},
2021-08-26 14:29:46 +00:00
{ attachTo: 'body', sync: 'false' },
2019-01-12 03:33:27 +00:00
);
2021-08-26 14:29:46 +00:00
wrapper.setProps({ value: [birthday, birthday] });
wrapper.setProps({ value: [] });
await sleep(0);
expect(() => {
openPicker(wrapper);
selectCell(wrapper, 3);
closePicker(wrapper);
openPicker(wrapper, 1);
selectCell(wrapper, 5, 1);
closePicker(wrapper, 1);
}).not.toThrow();
2019-01-12 03:33:27 +00:00
});
2018-06-09 05:14:14 +00:00
2021-08-26 14:29:46 +00:00
it('show month panel according to value', async () => {
const birthday = dayjs('2000-01-01', 'YYYY-MM-DD').locale('zh-cn');
2019-01-12 03:33:27 +00:00
const wrapper = mount(RangePicker, {
2020-07-25 07:46:49 +00:00
props: {
2021-08-26 14:29:46 +00:00
getPopupContainer: trigger => trigger,
format: 'YYYY/MM/DD',
showTime: true,
open: true,
2019-01-12 03:33:27 +00:00
},
sync: false,
2020-07-25 07:46:49 +00:00
attachTo: 'body',
2019-01-12 03:33:27 +00:00
});
2018-06-09 05:14:14 +00:00
await asyncExpect(() => {
2021-08-26 14:29:46 +00:00
wrapper.setProps({ value: [birthday, birthday] });
2019-01-12 03:33:27 +00:00
});
2018-06-09 05:14:14 +00:00
await asyncExpect(() => {
2021-08-26 14:29:46 +00:00
expect(document.body.innerHTML).toMatchSnapshot();
2019-01-12 03:33:27 +00:00
});
});
2018-06-09 05:14:14 +00:00
2021-08-26 14:29:46 +00:00
it('customize separator', () => {
const wrapper = mount(RangePicker, { props: { separator: 'test' } });
expect(wrapper.html()).toMatchSnapshot();
2019-01-12 03:33:27 +00:00
});
});