Skip to content

Commit 1a882c4

Browse files
authored
test: fix test (#440)
* test: fix test * chore: code clean
1 parent a8e39d5 commit 1a882c4

File tree

3 files changed

+12
-20
lines changed

3 files changed

+12
-20
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"node": ">=8.x"
5252
},
5353
"devDependencies": {
54+
"@testing-library/react": "^12",
5455
"@types/classnames": "^2.2.9",
5556
"@types/enzyme": "^3.10.3",
5657
"@types/jest": "^26.0.0",

tests/picker.spec.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import moment from 'moment';
88
import type { Moment } from 'moment';
99
import type { PanelMode, PickerMode } from '../src/interface';
1010
import { mount, getMoment, isSame, MomentPicker } from './util/commonUtil';
11+
import { fireEvent, render } from '@testing-library/react';
1112

1213
describe('Picker.Basic', () => {
1314
beforeAll(() => {
@@ -125,17 +126,14 @@ describe('Picker.Basic', () => {
125126
it('fixed open need repeat trigger onOpenChange', () => {
126127
jest.useFakeTimers();
127128
const onOpenChange = jest.fn();
128-
mount(<MomentPicker onOpenChange={onOpenChange} open />);
129+
render(<MomentPicker onOpenChange={onOpenChange} open />);
130+
expect(onOpenChange).toHaveBeenCalledTimes(0);
129131

130132
for (let i = 0; i < 10; i += 1) {
131-
const clickEvent = new Event('mousedown');
132-
Object.defineProperty(clickEvent, 'target', {
133-
get: () => document.body,
134-
});
135133
act(() => {
136-
window.dispatchEvent(clickEvent);
134+
fireEvent.mouseDown(document.body);
137135
});
138-
expect(onOpenChange).toHaveBeenCalledTimes(i + 1);
136+
expect(onOpenChange).toHaveBeenCalledTimes(1);
139137
}
140138
act(() => {
141139
jest.runAllTimers();

tests/range.spec.tsx

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type { Wrapper } from './util/commonUtil';
99
import { mount, getMoment, isSame, MomentRangePicker } from './util/commonUtil';
1010
import zhCN from '../src/locale/zh_CN';
1111
import type { PickerMode } from '../src/interface';
12+
import { fireEvent, render } from '@testing-library/react';
1213

1314
describe('Picker.Range', () => {
1415
function matchValues(wrapper: Wrapper, value1: string, value2: string) {
@@ -693,23 +694,15 @@ describe('Picker.Range', () => {
693694
it('fixed open need repeat trigger onOpenChange', () => {
694695
jest.useFakeTimers();
695696
const onOpenChange = jest.fn();
696-
const wrapper = mount(<MomentRangePicker onOpenChange={onOpenChange} open />);
697+
render(<MomentRangePicker onOpenChange={onOpenChange} open />);
697698

698-
for (let i = 0; i < 10; i += 1) {
699-
const clickEvent = new Event('mousedown');
700-
Object.defineProperty(clickEvent, 'target', {
701-
get: () => document.body,
702-
});
699+
expect(onOpenChange).toHaveBeenCalledTimes(0);
703700

704-
const current = onOpenChange.mock.calls.length;
701+
for (let i = 0; i < 10; i += 1) {
705702
act(() => {
706-
window.dispatchEvent(clickEvent);
707-
wrapper.find('input').first().simulate('blur');
703+
fireEvent.mouseDown(document.body);
708704
});
709-
const next = onOpenChange.mock.calls.length;
710-
711-
// Maybe not good since onOpenChange trigger twice
712-
expect(current < next).toBeTruthy();
705+
expect(onOpenChange).toHaveBeenCalledTimes(1);
713706
}
714707
act(() => {
715708
jest.runAllTimers();

0 commit comments

Comments
 (0)