|
|
|
import { mount } from '@vue/test-utils';
|
|
|
|
import { asyncExpect } from '@/tests/utils';
|
|
|
|
import moment from 'moment';
|
|
|
|
import DatePicker from '../';
|
|
|
|
import LocaleProvider from '../../locale-provider';
|
|
|
|
import locale from '../../locale-provider/zh_CN';
|
|
|
|
import { sleep } from '../../../tests/utils';
|
|
|
|
|
|
|
|
const { MonthPicker, WeekPicker } = DatePicker;
|
|
|
|
|
|
|
|
describe('Picker format by locale', () => {
|
|
|
|
const myLocale = {
|
|
|
|
...locale,
|
|
|
|
DatePicker: {
|
|
|
|
...locale.DatePicker,
|
|
|
|
dateFormat: 'YYYY 年 M 月 D 日',
|
|
|
|
dateTimeFormat: 'YYYY 年 M 月 D 日 H 时 m 分 s 秒',
|
|
|
|
weekFormat: 'YYYY 年 W 周',
|
|
|
|
monthFormat: 'YYYY 年 M 月',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
const date = moment('2000-01-01', 'YYYY-MM-DD');
|
|
|
|
function matchPicker(name, Picker, props) {
|
|
|
|
it(name, async () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
{
|
|
|
|
render() {
|
|
|
|
return (
|
|
|
|
<LocaleProvider locale={myLocale}>
|
|
|
|
<Picker value={date} {...props} />
|
|
|
|
</LocaleProvider>
|
|
|
|
);
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{ sync: false },
|
|
|
|
);
|
|
|
|
await asyncExpect(() => {
|
|
|
|
expect(wrapper.html()).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
matchPicker('date', DatePicker);
|
|
|
|
matchPicker('dateTime', DatePicker, { showTime: true });
|
|
|
|
matchPicker('week', WeekPicker);
|
|
|
|
matchPicker('month', MonthPicker);
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('MonthPicker and WeekPicker', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
document.body.innerHTML = '';
|
|
|
|
});
|
|
|
|
it('render MonthPicker', async () => {
|
|
|
|
const birthday = moment('2000-01-01', 'YYYY-MM-DD').locale('zh-cn');
|
|
|
|
const wrapper = mount(MonthPicker, { props: { open: true }, sync: false });
|
|
|
|
await asyncExpect(() => {
|
|
|
|
wrapper.setProps({ value: birthday });
|
|
|
|
});
|
|
|
|
|
|
|
|
await asyncExpect(() => {
|
|
|
|
expect(document.body.innerHTML).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
it('render WeekPicker', async () => {
|
|
|
|
const birthday = moment('2000-01-01', 'YYYY-MM-DD').locale('zh-cn');
|
|
|
|
const wrapper = mount(WeekPicker, { props: { open: false }, sync: false });
|
|
|
|
await asyncExpect(() => {
|
|
|
|
wrapper.setProps({ value: birthday, open: true });
|
|
|
|
});
|
|
|
|
await sleep(50);
|
|
|
|
await asyncExpect(() => {
|
|
|
|
expect(document.body.innerHTML).toMatchSnapshot();
|
|
|
|
}, 0);
|
|
|
|
});
|
|
|
|
});
|