2022-02-14 14:40:40 +08:00
|
|
|
import dayjs from 'dayjs';
|
2022-06-22 15:18:03 +08:00
|
|
|
import 'dayjs/locale/zh-cn';
|
2022-02-14 14:40:40 +08:00
|
|
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
2017-08-31 20:44:22 +08:00
|
|
|
import { mount, render } from 'enzyme';
|
2022-06-22 14:57:09 +08:00
|
|
|
import React from 'react';
|
2018-06-22 21:05:13 +08:00
|
|
|
import DatePicker from '..';
|
2022-06-22 14:57:09 +08:00
|
|
|
import ConfigProvider from '../../config-provider';
|
2019-01-15 16:58:40 +08:00
|
|
|
import LocaleProvider from '../../locale-provider';
|
|
|
|
import locale from '../../locale-provider/zh_CN';
|
2021-05-05 22:28:56 +08:00
|
|
|
import jaJP from '../../locale/ja_JP';
|
|
|
|
import zhTW from '../locale/zh_TW';
|
2018-01-13 19:11:53 +08:00
|
|
|
|
2022-02-14 14:40:40 +08:00
|
|
|
dayjs.extend(customParseFormat);
|
|
|
|
|
2018-01-13 19:11:53 +08:00
|
|
|
const { MonthPicker, WeekPicker } = DatePicker;
|
2017-08-31 20:44:22 +08:00
|
|
|
|
2019-01-15 16:58:40 +08:00
|
|
|
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 月',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2022-02-14 14:40:40 +08:00
|
|
|
const date = dayjs('2000-01-01', 'YYYY-MM-DD');
|
2019-01-15 16:58:40 +08:00
|
|
|
function matchPicker(name, Picker, props) {
|
|
|
|
it(name, () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<LocaleProvider locale={myLocale}>
|
|
|
|
<Picker value={date} {...props} />
|
|
|
|
</LocaleProvider>,
|
|
|
|
);
|
|
|
|
|
|
|
|
expect(wrapper.render()).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
matchPicker('date', DatePicker);
|
|
|
|
matchPicker('dateTime', DatePicker, { showTime: true });
|
|
|
|
matchPicker('week', WeekPicker);
|
|
|
|
matchPicker('month', MonthPicker);
|
|
|
|
});
|
|
|
|
|
2017-08-31 20:44:22 +08:00
|
|
|
describe('MonthPicker and WeekPicker', () => {
|
|
|
|
it('render MonthPicker', () => {
|
2022-02-14 14:40:40 +08:00
|
|
|
const birthday = dayjs('2000-01-01', 'YYYY-MM-DD').locale('zh-cn');
|
2018-12-07 20:02:01 +08:00
|
|
|
const wrapper = mount(<MonthPicker open />);
|
2017-08-31 20:44:22 +08:00
|
|
|
wrapper.setProps({ value: birthday });
|
2020-10-21 10:35:06 +08:00
|
|
|
expect(render(wrapper.find('Trigger').instance().getComponent())).toMatchSnapshot();
|
2017-08-31 20:44:22 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
it('render WeekPicker', () => {
|
2022-02-14 14:40:40 +08:00
|
|
|
const birthday = dayjs('2000-01-01', 'YYYY-MM-DD').locale('zh-cn');
|
2018-12-07 20:02:01 +08:00
|
|
|
const wrapper = mount(<WeekPicker open />);
|
2017-08-31 20:44:22 +08:00
|
|
|
wrapper.setProps({ value: birthday });
|
2020-10-21 10:35:06 +08:00
|
|
|
expect(render(wrapper.find('Trigger').instance().getComponent())).toMatchSnapshot();
|
2017-08-31 20:44:22 +08:00
|
|
|
});
|
|
|
|
});
|
2021-05-05 22:28:56 +08:00
|
|
|
|
|
|
|
describe('Override locale setting of the ConfigProvider', () => {
|
|
|
|
it('DatePicker', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<ConfigProvider locale={jaJP}>
|
|
|
|
<DatePicker locale={zhTW} />
|
|
|
|
</ConfigProvider>,
|
|
|
|
);
|
|
|
|
expect(wrapper.find('input').props().placeholder).toEqual('請選擇日期');
|
|
|
|
});
|
|
|
|
it('RangePicker', () => {
|
|
|
|
const wrapper = mount(
|
|
|
|
<ConfigProvider locale={jaJP}>
|
|
|
|
<DatePicker.RangePicker locale={zhTW} />
|
|
|
|
</ConfigProvider>,
|
|
|
|
);
|
|
|
|
expect(wrapper.find('input').at(0).props().placeholder).toEqual('開始日期');
|
|
|
|
expect(wrapper.find('input').at(1).props().placeholder).toEqual('結束日期');
|
|
|
|
});
|
|
|
|
});
|