diff --git a/docs/examples/range.tsx b/docs/examples/range.tsx
index 1b137c8b0..85da79106 100644
--- a/docs/examples/range.tsx
+++ b/docs/examples/range.tsx
@@ -202,6 +202,20 @@ export default () => {
disabledDate={disabledDate}
/>
+
+
Limit Date
+
+ generateConfig={momentGenerateConfig}
+ locale={zhCN}
+ defaultValue={[moment('2021-06-01'), moment('2021-06-02')]}
+ disabledDate={(current, { from }) => {
+ if (from) {
+ return Math.abs(current.diff(from, 'days')) >= 2;
+ }
+ return false;
+ }}
+ />
+
);
diff --git a/tests/demo.spec.tsx b/tests/demo.spec.tsx
new file mode 100644
index 000000000..2b74ef6a9
--- /dev/null
+++ b/tests/demo.spec.tsx
@@ -0,0 +1,41 @@
+import { fireEvent, render } from '@testing-library/react';
+import React from 'react';
+import { closePicker, DayRangePicker, getDay, openPicker } from './util/commonUtil';
+
+const fakeTime = getDay('1990-09-03 00:00:00').valueOf();
+
+describe('Picker.DisabledTime', () => {
+ beforeEach(() => {
+ jest.useFakeTimers().setSystemTime(fakeTime);
+ });
+
+ afterEach(() => {
+ jest.clearAllTimers();
+ jest.useRealTimers();
+ });
+
+ it('limit', async () => {
+ const wrapper = render(
+ {
+ if (from) {
+ return Math.abs(current.diff(from, 'days')) >= 2;
+ }
+ return false;
+ }}
+ />,
+ );
+
+ openPicker(wrapper.container);
+ fireEvent.click(wrapper.getByTitle('2021-06-21'));
+ fireEvent.click(wrapper.getByTitle('2021-06-26'));
+ closePicker(wrapper.container);
+ expect(
+ [
+ wrapper.container.querySelectorAll('input')?.[0]?.value,
+ wrapper.container.querySelectorAll('input')?.[0]?.value,
+ ].join(' '),
+ ).toBe(['2021-06-21', '2021-06-21'].join(' '));
+ });
+});