diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index 52e732b29..ea993799a 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -1924,24 +1924,48 @@ describe('Picker.Range', () => { expect(document.querySelectorAll('.rc-picker-input')[1]).toHaveClass('rc-picker-input-active'); }); - it('dateTime mode switch should trigger onCalendarChange', () => { - const onCalendarChange = jest.fn(); - const { container } = render( - , - ); + describe('trigger onCalendarChange', () => { + const switchInput = (container: HTMLElement) => { + openPicker(container, 0); - openPicker(container, 0); + selectCell(8, 0); - selectCell(8, 0); + openPicker(container, 1); - openPicker(container, 1); + // onBlur is triggered when the switch is complete + closePicker(container, 0); + }; + + it('dateTime mode switch should trigger onCalendarChange', () => { + const onCalendarChange = jest.fn(); + const { container } = render( + , + ); + + switchInput(container); - // onBlur is triggered when the switch is complete - closePicker(container, 0); + expect(onCalendarChange).toHaveBeenCalled(); + }); - expect(onCalendarChange).toHaveBeenCalled(); + it('should only trigger onCalendarChange when showTime and changeOnBlur exist', async () => { + const onCalendarChange = jest.fn(); + const onChange = jest.fn(); + const { container, baseElement } = render( + , + ); + + switchInput(container); + + // one of the panel should be open + expect(baseElement.querySelector('.rc-picker-dropdown')).toBeTruthy(); + + expect(onCalendarChange).toHaveBeenCalled(); + expect(onChange).not.toHaveBeenCalled(); + }); }); });