From 8ff49dc3444f2a76ff038160dfd689250c7029b1 Mon Sep 17 00:00:00 2001 From: MadCcc <1075746765@qq.com> Date: Mon, 18 Jul 2022 11:49:24 +0800 Subject: [PATCH 1/2] test: fix test --- docs/examples/basic.tsx | 2 ++ package.json | 1 + tests/picker.spec.tsx | 12 +++++------- tests/range.spec.tsx | 19 ++++++------------- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/docs/examples/basic.tsx b/docs/examples/basic.tsx index d2d346f25..b737d8480 100644 --- a/docs/examples/basic.tsx +++ b/docs/examples/basic.tsx @@ -52,6 +52,8 @@ export default () => { allowClear showToday renderExtraFooter={() => 'extra'} + open + onOpenChange={() => console.log('Open')} />
diff --git a/package.json b/package.json index ce53aa998..4e9383379 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "node": ">=8.x" }, "devDependencies": { + "@testing-library/react": "^12", "@types/classnames": "^2.2.9", "@types/enzyme": "^3.10.3", "@types/jest": "^26.0.0", diff --git a/tests/picker.spec.tsx b/tests/picker.spec.tsx index c4d82ddaf..a42c197b1 100644 --- a/tests/picker.spec.tsx +++ b/tests/picker.spec.tsx @@ -8,6 +8,7 @@ import moment from 'moment'; import type { Moment } from 'moment'; import type { PanelMode, PickerMode } from '../src/interface'; import { mount, getMoment, isSame, MomentPicker } from './util/commonUtil'; +import { fireEvent, render } from '@testing-library/react'; describe('Picker.Basic', () => { beforeAll(() => { @@ -125,17 +126,14 @@ describe('Picker.Basic', () => { it('fixed open need repeat trigger onOpenChange', () => { jest.useFakeTimers(); const onOpenChange = jest.fn(); - mount(); + render(); + expect(onOpenChange).toHaveBeenCalledTimes(0); for (let i = 0; i < 10; i += 1) { - const clickEvent = new Event('mousedown'); - Object.defineProperty(clickEvent, 'target', { - get: () => document.body, - }); act(() => { - window.dispatchEvent(clickEvent); + fireEvent.mouseDown(document.body); }); - expect(onOpenChange).toHaveBeenCalledTimes(i + 1); + expect(onOpenChange).toHaveBeenCalledTimes(1); } act(() => { jest.runAllTimers(); diff --git a/tests/range.spec.tsx b/tests/range.spec.tsx index 70c597e50..15fb77cfe 100644 --- a/tests/range.spec.tsx +++ b/tests/range.spec.tsx @@ -9,6 +9,7 @@ import type { Wrapper } from './util/commonUtil'; import { mount, getMoment, isSame, MomentRangePicker } from './util/commonUtil'; import zhCN from '../src/locale/zh_CN'; import type { PickerMode } from '../src/interface'; +import { fireEvent, render } from '@testing-library/react'; describe('Picker.Range', () => { function matchValues(wrapper: Wrapper, value1: string, value2: string) { @@ -693,23 +694,15 @@ describe('Picker.Range', () => { it('fixed open need repeat trigger onOpenChange', () => { jest.useFakeTimers(); const onOpenChange = jest.fn(); - const wrapper = mount(); + render(); - for (let i = 0; i < 10; i += 1) { - const clickEvent = new Event('mousedown'); - Object.defineProperty(clickEvent, 'target', { - get: () => document.body, - }); + expect(onOpenChange).toHaveBeenCalledTimes(0); - const current = onOpenChange.mock.calls.length; + for (let i = 0; i < 10; i += 1) { act(() => { - window.dispatchEvent(clickEvent); - wrapper.find('input').first().simulate('blur'); + fireEvent.mouseDown(document.body); }); - const next = onOpenChange.mock.calls.length; - - // Maybe not good since onOpenChange trigger twice - expect(current < next).toBeTruthy(); + expect(onOpenChange).toHaveBeenCalledTimes(1); } act(() => { jest.runAllTimers(); From b353c795add76519a60d8c8d3f1d7a5c200460cd Mon Sep 17 00:00:00 2001 From: MadCcc <1075746765@qq.com> Date: Mon, 18 Jul 2022 11:51:20 +0800 Subject: [PATCH 2/2] chore: code clean --- docs/examples/basic.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/examples/basic.tsx b/docs/examples/basic.tsx index b737d8480..d2d346f25 100644 --- a/docs/examples/basic.tsx +++ b/docs/examples/basic.tsx @@ -52,8 +52,6 @@ export default () => { allowClear showToday renderExtraFooter={() => 'extra'} - open - onOpenChange={() => console.log('Open')} />