@@ -20,9 +20,9 @@ import { waitFor } from '@testing-library/react';
2020
2121import { act , axe , render , userEvent , screen } from '../../util/test-utils.js' ;
2222
23- import { Popover , type PopoverProps } from './Popover .js' ;
23+ import { ActionMenu , type ActionMenuProps } from './ActionMenu .js' ;
2424
25- describe ( 'Popover ' , ( ) => {
25+ describe ( 'ActionMenu ' , ( ) => {
2626 beforeEach ( ( ) => {
2727 vi . useFakeTimers ( { shouldAdvanceTime : true } ) ;
2828 } ) ;
@@ -31,8 +31,8 @@ describe('Popover', () => {
3131 vi . clearAllMocks ( ) ;
3232 } ) ;
3333
34- function renderPopover ( props : PopoverProps ) {
35- return render ( < Popover { ...props } /> ) ;
34+ function renderActionMenu ( props : ActionMenuProps ) {
35+ return render ( < ActionMenu { ...props } /> ) ;
3636 }
3737
3838 function createStateSetter ( initialState : boolean ) {
@@ -55,7 +55,7 @@ describe('Popover', () => {
5555 await act ( async ( ) => { } ) ;
5656 }
5757
58- const baseProps : PopoverProps = {
58+ const baseProps : ActionMenuProps = {
5959 component : ( triggerProps ) => < button { ...triggerProps } > Button</ button > ,
6060 actions : [
6161 {
@@ -76,19 +76,19 @@ describe('Popover', () => {
7676 } ;
7777 it ( 'should forward a ref' , ( ) => {
7878 const ref = createRef < HTMLDialogElement > ( ) ;
79- render ( < Popover { ...baseProps } ref = { ref } /> ) ;
79+ render ( < ActionMenu { ...baseProps } ref = { ref } /> ) ;
8080 const dialog = screen . getByRole ( 'dialog' , { hidden : true } ) ;
8181 expect ( ref . current ) . toBe ( dialog ) ;
8282 } ) ;
8383
84- it ( 'should open the popover when clicking the trigger element' , async ( ) => {
84+ it ( 'should open the action menu when clicking the trigger element' , async ( ) => {
8585 const isOpen = false ;
8686 const onToggle = vi . fn ( createStateSetter ( isOpen ) ) ;
87- renderPopover ( { ...baseProps , isOpen, onToggle } ) ;
87+ renderActionMenu ( { ...baseProps , isOpen, onToggle } ) ;
8888
89- const popoverTrigger = screen . getByRole ( 'button' ) ;
89+ const trigger = screen . getByRole ( 'button' ) ;
9090
91- await userEvent . click ( popoverTrigger ) ;
91+ await userEvent . click ( trigger ) ;
9292
9393 expect ( onToggle ) . toHaveBeenCalledTimes ( 1 ) ;
9494 } ) ;
@@ -99,23 +99,23 @@ describe('Popover', () => {
9999 [ 'arrow down' , '{ArrowDown}' ] ,
100100 [ 'arrow up' , '{ArrowUp}' ] ,
101101 ] ) (
102- 'should open the popover when pressing the %s key on the trigger element' ,
102+ 'should open the action menu when pressing the %s key on the trigger element' ,
103103 async ( _ , key ) => {
104104 const isOpen = false ;
105105 const onToggle = vi . fn ( createStateSetter ( isOpen ) ) ;
106- renderPopover ( { ...baseProps , isOpen, onToggle } ) ;
106+ renderActionMenu ( { ...baseProps , isOpen, onToggle } ) ;
107107
108- const popoverTrigger = screen . getByRole ( 'button' ) ;
108+ const trigger = screen . getByRole ( 'button' ) ;
109109
110- popoverTrigger . focus ( ) ;
110+ trigger . focus ( ) ;
111111 await userEvent . keyboard ( key ) ;
112112
113113 expect ( onToggle ) . toHaveBeenCalledTimes ( 1 ) ;
114114 } ,
115115 ) ;
116116
117- it ( 'should close the popover when clicking outside' , async ( ) => {
118- renderPopover ( baseProps ) ;
117+ it ( 'should close the action menu when clicking outside' , async ( ) => {
118+ renderActionMenu ( baseProps ) ;
119119
120120 await userEvent . click ( document . body ) ;
121121
@@ -124,12 +124,12 @@ describe('Popover', () => {
124124 } ) ;
125125 } ) ;
126126
127- it ( 'should close the popover when clicking the trigger element' , async ( ) => {
128- renderPopover ( baseProps ) ;
127+ it ( 'should close the action menu when clicking the trigger element' , async ( ) => {
128+ renderActionMenu ( baseProps ) ;
129129
130- const popoverTrigger = screen . getByRole ( 'button' ) ;
130+ const trigger = screen . getByRole ( 'button' ) ;
131131
132- await userEvent . click ( popoverTrigger ) ;
132+ await userEvent . click ( trigger ) ;
133133
134134 // TODO Find a better way to test this as toHaveBeenCalled is not reliable here.
135135 expect ( baseProps . onToggle ) . toHaveBeenCalled ( ) ;
@@ -140,82 +140,82 @@ describe('Popover', () => {
140140 [ 'enter' , '{Enter}' ] ,
141141 [ 'arrow up' , '{ArrowUp}' ] ,
142142 ] ) (
143- 'should close the popover when pressing the %s key on the trigger element' ,
143+ 'should close the action menu when pressing the %s key on the trigger element' ,
144144 async ( _ , key ) => {
145- renderPopover ( baseProps ) ;
145+ renderActionMenu ( baseProps ) ;
146146 vi . runAllTimers ( ) ;
147147
148- const popoverTrigger = screen . getByRole ( 'button' ) ;
148+ const trigger = screen . getByRole ( 'button' ) ;
149149
150- popoverTrigger . focus ( ) ;
150+ trigger . focus ( ) ;
151151 await userEvent . keyboard ( key ) ;
152152
153153 expect ( baseProps . onToggle ) . toHaveBeenCalledTimes ( 1 ) ;
154154 } ,
155155 ) ;
156156
157- it ( 'should close the popover when clicking the escape key' , async ( ) => {
158- renderPopover ( baseProps ) ;
157+ it ( 'should close the action menu when clicking the escape key' , async ( ) => {
158+ renderActionMenu ( baseProps ) ;
159159
160160 await userEvent . keyboard ( '{Escape}' ) ;
161161
162162 await waitFor ( ( ) => expect ( baseProps . onToggle ) . toHaveBeenCalledTimes ( 1 ) ) ;
163163 } ) ;
164164
165- it ( 'should close the popover when clicking a popover item' , async ( ) => {
166- renderPopover ( baseProps ) ;
165+ it ( 'should close the action menu when clicking a action menu item' , async ( ) => {
166+ renderActionMenu ( baseProps ) ;
167167
168- const popoverItems = screen . getAllByRole ( 'menuitem' ) ;
168+ const actionMenuItems = screen . getAllByRole ( 'menuitem' ) ;
169169
170- await userEvent . click ( popoverItems [ 0 ] ) ;
170+ await userEvent . click ( actionMenuItems [ 0 ] ) ;
171171
172172 expect ( baseProps . onToggle ) . toHaveBeenCalledTimes ( 1 ) ;
173173 } ) ;
174174
175- it ( 'should move focus to the first popover item after opening' , async ( ) => {
175+ it ( 'should move focus to the first action menu item after opening' , async ( ) => {
176176 const isOpen = false ;
177177 const onToggle = vi . fn ( createStateSetter ( isOpen ) ) ;
178178
179- const { rerender } = renderPopover ( {
179+ const { rerender } = renderActionMenu ( {
180180 ...baseProps ,
181181 isOpen,
182182 onToggle,
183183 } ) ;
184184
185- rerender ( < Popover { ...baseProps } isOpen /> ) ;
185+ rerender ( < ActionMenu { ...baseProps } isOpen /> ) ;
186186
187- const popoverItems = screen . getAllByRole ( 'menuitem' ) ;
187+ const actionMenuItems = screen . getAllByRole ( 'menuitem' ) ;
188188
189- expect ( popoverItems [ 0 ] ) . toHaveFocus ( ) ;
189+ expect ( actionMenuItems [ 0 ] ) . toHaveFocus ( ) ;
190190
191191 await flushMicrotasks ( ) ;
192192 } ) ;
193193
194194 it ( 'should move focus to the trigger element after closing' , async ( ) => {
195- const { rerender } = renderPopover ( baseProps ) ;
195+ const { rerender } = renderActionMenu ( baseProps ) ;
196196
197- rerender ( < Popover { ...baseProps } isOpen = { false } /> ) ;
197+ rerender ( < ActionMenu { ...baseProps } isOpen = { false } /> ) ;
198198
199- const popoverTrigger = screen . getByRole ( 'button' ) ;
199+ const trigger = screen . getByRole ( 'button' ) ;
200200
201201 await waitFor ( ( ) => {
202- expect ( popoverTrigger ) . toHaveFocus ( ) ;
202+ expect ( trigger ) . toHaveFocus ( ) ;
203203 } ) ;
204204
205205 await flushMicrotasks ( ) ;
206206 } ) ;
207207
208208 it ( 'should have no accessibility violations' , async ( ) => {
209- const { container } = renderPopover ( baseProps ) ;
209+ const { container } = renderActionMenu ( baseProps ) ;
210210
211211 await act ( async ( ) => {
212212 const actual = await axe ( container ) ;
213213 expect ( actual ) . toHaveNoViolations ( ) ;
214214 } ) ;
215215 } ) ;
216216
217- it ( 'should render the popover with menu semantics by default ' , async ( ) => {
218- renderPopover ( baseProps ) ;
217+ it ( 'should render the action menu with menu semantics by default ' , async ( ) => {
218+ renderActionMenu ( baseProps ) ;
219219
220220 const menu = screen . getByRole ( 'menu' ) ;
221221 expect ( menu ) . toBeVisible ( ) ;
@@ -225,8 +225,8 @@ describe('Popover', () => {
225225 await flushMicrotasks ( ) ;
226226 } ) ;
227227
228- it ( 'should render the popover without menu semantics ' , async ( ) => {
229- renderPopover ( { ...baseProps , role : null } ) ;
228+ it ( 'should render the action menu without menu semantics ' , async ( ) => {
229+ renderActionMenu ( { ...baseProps , role : null } ) ;
230230
231231 const menu = screen . queryByRole ( 'menu' ) ;
232232 expect ( menu ) . toBeNull ( ) ;
@@ -237,7 +237,7 @@ describe('Popover', () => {
237237 } ) ;
238238
239239 it ( 'should hide dividers from the accessibility tree' , async ( ) => {
240- const { baseElement } = renderPopover ( baseProps ) ;
240+ const { baseElement } = renderActionMenu ( baseProps ) ;
241241
242242 // eslint-disable-next-line testing-library/no-node-access
243243 const dividers = baseElement . querySelectorAll ( 'hr[aria-hidden="true"' ) ;
0 commit comments