From 46f04d8740ac40915a315885fd09ad959ab4c859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Wed, 26 Apr 2023 09:50:49 +0800 Subject: [PATCH 1/3] test: fix align count test --- tests/basic.test.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/basic.test.jsx b/tests/basic.test.jsx index 40ec6078..d2b1bc8e 100644 --- a/tests/basic.test.jsx +++ b/tests/basic.test.jsx @@ -850,8 +850,10 @@ describe('Trigger.Basic', () => { expect(errorSpy).not.toHaveBeenCalled(); errorSpy.mockRestore(); }); + it('should trigger align when popupAlign had updated', async () => { const onPopupAlign = jest.fn(); + const App = () => { const [placementAlign, setPlacementAlign] = React.useState( placementAlignMap.leftTop, @@ -892,16 +894,21 @@ describe('Trigger.Basic', () => { ); }; render(); + + // CSSMotion will trigger `onPrepare` even when motion not support + // Which means align will trigger twice on `prepare` & `visibleChanged` await awaitFakeTimer(); - expect(onPopupAlign).toHaveBeenCalledTimes(1); + expect(onPopupAlign).toHaveBeenCalledTimes(2); fireEvent.click(document.querySelector('#btn')); + await awaitFakeTimer(); - expect(onPopupAlign).toHaveBeenCalledTimes(2); + expect(onPopupAlign).toHaveBeenCalledTimes(3); + fireEvent.click(document.querySelector('#close')); await awaitFakeTimer(); fireEvent.click(document.querySelector('#btn')); await awaitFakeTimer(); - expect(onPopupAlign).toHaveBeenCalledTimes(2); + expect(onPopupAlign).toHaveBeenCalledTimes(3); }); it('popupVisible switch `undefined` and `false` should work', async () => { From d4a75137c03c91890181f065eecabb0ef943e7a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Wed, 26 Apr 2023 10:24:19 +0800 Subject: [PATCH 2/3] test: fix motion related test --- tests/basic.test.jsx | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/tests/basic.test.jsx b/tests/basic.test.jsx index d2b1bc8e..93c128a8 100644 --- a/tests/basic.test.jsx +++ b/tests/basic.test.jsx @@ -162,7 +162,7 @@ describe('Trigger.Basic', () => { }); describe('afterPopupVisibleChange can be triggered', () => { - it('uncontrolled', () => { + it('uncontrolled', async () => { let triggered = 0; const { container } = render( { ); trigger(container, '.target'); + + await awaitFakeTimer(); + expect(triggered).toBe(1); }); - it('controlled', () => { - const demoRef = createRef(); + it('controlled', async () => { let triggered = 0; - class Demo extends React.Component { - state = { - visible: false, - }; + const Demo = () => { + const [visible, setVisible] = React.useState(false); - render() { - return ( + return ( + <> +