Skip to content

Commit 74a815c

Browse files
committed
test: 100% coverage
1 parent 5cf4234 commit 74a815c

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/RangePicker.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ function InternalRangePicker<DateType>(
269269
const lastOpenIdRef = React.useRef<number>();
270270

271271
const onStartOpenChange = (open: boolean) => {
272-
if (!open && innerValue && innerValue[0]) {
272+
if (!open && selectedValues && selectedValues[0]) {
273273
lastOpenIdRef.current = window.setTimeout(() => {
274274
if (endPickerRef.current) {
275275
endPickerRef.current!.focus();

tests/range.spec.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from 'react';
22
import MockDate from 'mockdate';
3+
import { act } from 'react-dom/test-utils';
34
import KeyCode from 'rc-util/lib/KeyCode';
45
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
56
import { Moment } from 'moment';
@@ -534,4 +535,31 @@ describe('Range', () => {
534535

535536
expect(onChange).not.toHaveBeenCalled();
536537
});
538+
539+
it('should open last when first selected', () => {
540+
jest.useFakeTimers();
541+
const onOpenChange = jest.fn();
542+
const wrapper = mount(<MomentRangePicker onOpenChange={onOpenChange} />);
543+
expect(wrapper.find('PickerPanel')).toHaveLength(0);
544+
545+
wrapper.openPicker();
546+
wrapper.selectCell(11);
547+
expect(wrapper.find('PickerPanel')).toHaveLength(1);
548+
549+
// Should open second one
550+
wrapper.closePicker();
551+
expect(onOpenChange).toHaveBeenCalled();
552+
553+
act(() => {
554+
jest.runAllTimers();
555+
});
556+
act(() => {
557+
wrapper.update();
558+
});
559+
expect(wrapper.find('PickerPanel')).toHaveLength(2);
560+
561+
wrapper.unmount();
562+
563+
jest.useRealTimers();
564+
});
537565
});

0 commit comments

Comments
 (0)