Skip to content

Commit

Permalink
test: Add test case
Browse files Browse the repository at this point in the history
  • Loading branch information
zombieJ committed Nov 26, 2020
1 parent 7f96641 commit ae4796d
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 30 deletions.
80 changes: 53 additions & 27 deletions tests/keyboard.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -477,35 +477,61 @@ describe('Picker.Keyboard', () => {
expect(preventDefault).toHaveBeenCalled();
});

it('keyboard should not trigger on disabledDate', () => {
const onChange = jest.fn();
const onSelect = jest.fn();
const wrapper = mount(
<MomentPicker
showTime
onSelect={onSelect}
onChange={onChange}
disabledDate={date => date.date() % 2 === 0}
/>,
);
wrapper.find('input').simulate('focus');
wrapper.keyDown(KeyCode.ENTER);
wrapper.keyDown(KeyCode.TAB);
wrapper.keyDown(KeyCode.TAB);
wrapper.keyDown(KeyCode.DOWN);
expect(isSame(onSelect.mock.calls[0][0], '1990-09-10')).toBeTruthy();
describe('keyboard should not trigger on disabledDate', () => {
it('picker', () => {
const onChange = jest.fn();
const onSelect = jest.fn();
const wrapper = mount(
<MomentPicker
showTime
onSelect={onSelect}
onChange={onChange}
disabledDate={date => date.date() % 2 === 0}
/>,
);
wrapper.find('input').simulate('focus');
wrapper.keyDown(KeyCode.ENTER);
wrapper.keyDown(KeyCode.TAB);
wrapper.keyDown(KeyCode.TAB);
wrapper.keyDown(KeyCode.DOWN);
expect(isSame(onSelect.mock.calls[0][0], '1990-09-10')).toBeTruthy();

// Not enter to change
wrapper.keyDown(KeyCode.ENTER);
expect(onChange).not.toHaveBeenCalled();
// Not enter to change
wrapper.keyDown(KeyCode.ENTER);
expect(onChange).not.toHaveBeenCalled();

// Not button enabled
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy();
// Not button enabled
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeTruthy();

// Another can be enter
wrapper.keyDown(KeyCode.RIGHT);
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeFalsy();
wrapper.keyDown(KeyCode.ENTER);
expect(onChange).toHaveBeenCalled();
// Another can be enter
wrapper.keyDown(KeyCode.RIGHT);
expect(wrapper.find('.rc-picker-ok button').props().disabled).toBeFalsy();
wrapper.keyDown(KeyCode.ENTER);
expect(onChange).toHaveBeenCalled();
});

it('panel', () => {
const onChange = jest.fn();
const onSelect = jest.fn();
const wrapper = mount(
<MomentPickerPanel
onSelect={onSelect}
onChange={onChange}
disabledDate={date => date.date() % 2 === 0}
/>,
);

wrapper.find('.rc-picker-panel').simulate('focus');

// 9-10 is disabled
wrapper.keyDown(KeyCode.DOWN);
expect(isSame(onSelect.mock.calls[0][0], '1990-09-10')).toBeTruthy();
expect(onChange).not.toHaveBeenCalled();

// 9-17 is enabled
wrapper.keyDown(KeyCode.DOWN);
expect(isSame(onSelect.mock.calls[1][0], '1990-09-17')).toBeTruthy();
expect(isSame(onChange.mock.calls[0][0], '1990-09-17')).toBeTruthy();
});
});
});
10 changes: 7 additions & 3 deletions tests/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,13 @@ Object.assign(Enzyme.ReactWrapper.prototype, {
this.find('.rc-picker-clear-btn').simulate('mouseUp');
},
keyDown(which, info = {}, index = 0) {
this.find('input')
.at(index)
.simulate('keydown', { ...info, which });
let component = this.find('input');

if (component.length === 0) {
component = this.find('.rc-picker-panel');
}

component.at(index).simulate('keydown', { ...info, which });
},
inputValue(text, index = 0) {
this.find('input')
Expand Down

0 comments on commit ae4796d

Please sign in to comment.