From 034c368124db6648bce8bde7810b2df426b99b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Dudak?= Date: Thu, 9 Jan 2025 09:04:28 +0100 Subject: [PATCH 1/2] [test] Use vitest's `userEvent` implementation in browser tests --- .../src/accordion/root/AccordionRoot.test.tsx | 26 +++---- .../collapsible/root/CollapsibleRoot.test.tsx | 4 +- .../src/dialog/popup/DialogPopup.test.tsx | 40 ++++++----- .../react/src/dialog/root/DialogRoot.test.tsx | 24 ++----- .../react/src/field/root/FieldRoot.test.tsx | 19 +++--- .../menu/positioner/MenuPositioner.test.tsx | 7 +- .../react/src/menu/root/MenuRoot.test.tsx | 67 ++++++++++--------- .../root/PreviewCardRoot.test.tsx | 14 ++-- .../react/src/select/item/SelectItem.test.tsx | 2 +- .../react/src/select/root/SelectRoot.test.tsx | 4 +- .../react/src/switch/root/SwitchRoot.test.tsx | 7 +- .../src/toggle-group/ToggleGroup.test.tsx | 14 ++-- packages/react/test/createRenderer.ts | 41 +++++++++++- packages/react/test/describeConformance.tsx | 10 +-- 14 files changed, 151 insertions(+), 128 deletions(-) diff --git a/packages/react/src/accordion/root/AccordionRoot.test.tsx b/packages/react/src/accordion/root/AccordionRoot.test.tsx index ed0d42860c..5ae2b72f36 100644 --- a/packages/react/src/accordion/root/AccordionRoot.test.tsx +++ b/packages/react/src/accordion/root/AccordionRoot.test.tsx @@ -65,7 +65,7 @@ describe('', () => { expect(trigger).to.have.attribute('aria-expanded', 'false'); expect(queryByText(PANEL_CONTENT_1)).to.equal(null); - await user.pointer({ keys: '[MouseLeft]', target: trigger }); + await user.click(trigger); expect(trigger).to.have.attribute('aria-expanded', 'true'); expect(trigger).to.have.attribute('data-panel-open'); @@ -73,7 +73,7 @@ describe('', () => { expect(queryByText(PANEL_CONTENT_1)).toBeVisible(); expect(queryByText(PANEL_CONTENT_1)).to.have.attribute('data-open'); - await user.pointer({ keys: '[MouseLeft]', target: trigger }); + await user.click(trigger); expect(trigger).to.have.attribute('aria-expanded', 'false'); expect(queryByText(PANEL_CONTENT_1)).to.equal(null); @@ -461,7 +461,7 @@ describe('', () => { const [trigger1, , , trigger4] = getAllByRole('button'); - await user.pointer({ keys: '[MouseLeft]', target: trigger4 }); + await user.click(trigger4); expect(trigger4).toHaveFocus(); await user.keyboard('[Home]'); @@ -528,8 +528,8 @@ describe('', () => { expect(queryByText(PANEL_CONTENT_1)).to.equal(null); expect(queryByText(PANEL_CONTENT_2)).to.equal(null); - await user.pointer({ keys: '[MouseLeft]', target: trigger1 }); - await user.pointer({ keys: '[MouseLeft]', target: trigger2 }); + await user.click(trigger1); + await user.click(trigger2); expect(queryByText(PANEL_CONTENT_1)).to.have.attribute('data-open'); expect(queryByText(PANEL_CONTENT_2)).to.have.attribute('data-open'); @@ -562,12 +562,12 @@ describe('', () => { expect(trigger1).to.not.have.attribute('data-panel-open'); expect(trigger2).to.not.have.attribute('data-panel-open'); - await user.pointer({ keys: '[MouseLeft]', target: trigger1 }); + await user.click(trigger1); expect(queryByText(PANEL_CONTENT_1)).to.have.attribute('data-open'); expect(trigger1).to.have.attribute('data-panel-open'); - await user.pointer({ keys: '[MouseLeft]', target: trigger2 }); + await user.click(trigger2); expect(queryByText(PANEL_CONTENT_2)).to.have.attribute('data-open'); expect(trigger2).to.have.attribute('data-panel-open'); @@ -679,12 +679,12 @@ describe('', () => { expect(onValueChange.callCount).to.equal(0); - await user.pointer({ keys: '[MouseLeft]', target: trigger1 }); + await user.click(trigger1); expect(onValueChange.callCount).to.equal(1); expect(onValueChange.args[0][0]).to.deep.equal([0]); - await user.pointer({ keys: '[MouseLeft]', target: trigger2 }); + await user.click(trigger2); expect(onValueChange.callCount).to.equal(2); expect(onValueChange.args[1][0]).to.deep.equal([0, 1]); @@ -714,12 +714,12 @@ describe('', () => { expect(onValueChange.callCount).to.equal(0); - await user.pointer({ keys: '[MouseLeft]', target: trigger2 }); + await user.click(trigger2); expect(onValueChange.callCount).to.equal(1); expect(onValueChange.args[0][0]).to.deep.equal(['two']); - await user.pointer({ keys: '[MouseLeft]', target: trigger1 }); + await user.click(trigger1); expect(onValueChange.callCount).to.equal(2); expect(onValueChange.args[1][0]).to.deep.equal(['two', 'one']); @@ -749,12 +749,12 @@ describe('', () => { expect(onValueChange.callCount).to.equal(0); - await user.pointer({ keys: '[MouseLeft]', target: trigger1 }); + await user.click(trigger1); expect(onValueChange.callCount).to.equal(1); expect(onValueChange.args[0][0]).to.deep.equal(['one']); - await user.pointer({ keys: '[MouseLeft]', target: trigger2 }); + await user.click(trigger2); expect(onValueChange.callCount).to.equal(2); expect(onValueChange.args[1][0]).to.deep.equal(['two']); diff --git a/packages/react/src/collapsible/root/CollapsibleRoot.test.tsx b/packages/react/src/collapsible/root/CollapsibleRoot.test.tsx index f09c088559..598ed76963 100644 --- a/packages/react/src/collapsible/root/CollapsibleRoot.test.tsx +++ b/packages/react/src/collapsible/root/CollapsibleRoot.test.tsx @@ -83,7 +83,7 @@ describe('', () => { expect(trigger).to.have.attribute('aria-expanded', 'false'); expect(queryByText(PANEL_CONTENT)).to.equal(null); - await user.pointer({ keys: '[MouseLeft]', target: trigger }); + await user.click(trigger); expect(trigger).to.have.attribute('aria-expanded', 'true'); expect(queryByText(PANEL_CONTENT)).to.not.equal(null); @@ -91,7 +91,7 @@ describe('', () => { expect(queryByText(PANEL_CONTENT)).to.have.attribute('data-open'); expect(trigger).to.have.attribute('data-panel-open'); - await user.pointer({ keys: '[MouseLeft]', target: trigger }); + await user.click(trigger); expect(trigger).to.not.have.attribute('aria-controls'); expect(trigger).to.have.attribute('aria-expanded', 'false'); diff --git a/packages/react/src/dialog/popup/DialogPopup.test.tsx b/packages/react/src/dialog/popup/DialogPopup.test.tsx index a561d77bfd..e694184980 100644 --- a/packages/react/src/dialog/popup/DialogPopup.test.tsx +++ b/packages/react/src/dialog/popup/DialogPopup.test.tsx @@ -282,27 +282,25 @@ describe('', () => { function App() { const [showNested, setShowNested] = React.useState(true); return ( - - - - Trigger 0 - - - {showNested && ( - - Trigger 1 - - - Close 1 - - - - )} - Close 0 - - - - + + Trigger 0 + + + {showNested && ( + + Trigger 1 + + + + Close 1 + + + + )} + Close 0 + + + ); } diff --git a/packages/react/src/dialog/root/DialogRoot.test.tsx b/packages/react/src/dialog/root/DialogRoot.test.tsx index 8840d04cc3..3a22159d8f 100644 --- a/packages/react/src/dialog/root/DialogRoot.test.tsx +++ b/packages/react/src/dialog/root/DialogRoot.test.tsx @@ -66,7 +66,7 @@ describe('', () => { return (
- + @@ -120,14 +120,15 @@ describe('', () => {
{/* eslint-disable-next-line react/no-danger */}