import moment from 'moment'; import React from 'react'; import DatePicker from '..'; import ConfigProvider from '../../config-provider'; import type { Locale } from '../../locale-provider'; import LocaleProvider from '../../locale-provider'; import locale from '../../locale-provider/zh_CN'; import jaJP from '../../locale/ja_JP'; import zhTW from '../locale/zh_TW'; import { render } 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: string, Picker: typeof MonthPicker | typeof WeekPicker, props?: any) { it(name, () => { const { container } = render( , ); expect(container.firstChild).toMatchSnapshot(); }); } matchPicker('date', DatePicker); matchPicker('dateTime', DatePicker, { showTime: true }); matchPicker('week', WeekPicker); matchPicker('month', MonthPicker); }); describe('MonthPicker and WeekPicker', () => { it('render MonthPicker', () => { const birthday = moment('2000-01-01', 'YYYY-MM-DD').locale('zh-cn'); const { container } = render(); expect(container.querySelector('div.ant-picker-dropdown')?.parentNode).toMatchSnapshot(); }); it('render WeekPicker', () => { const birthday = moment('2000-01-01', 'YYYY-MM-DD').locale('zh-cn'); const { container } = render(); expect(container.querySelector('div.ant-picker-dropdown')?.parentNode).toMatchSnapshot(); }); }); describe('Override locale setting of the ConfigProvider', () => { it('DatePicker', () => { const { container } = render( , ); expect(container.querySelector('input')?.placeholder).toEqual('請選擇日期'); }); it('RangePicker', () => { const { container } = render( , ); expect(container.querySelectorAll('input')[0]?.placeholder).toEqual('開始日期'); expect(container.querySelectorAll('input')[1]?.placeholder).toEqual('結束日期'); }); });