@@ -56,11 +56,14 @@ it('Moves the focus to the first menu item after clicking the menu to open it, t
56
56
57
57
expect ( screen . getByText ( 'Primary' ) ) . toHaveFocus ( ) ;
58
58
59
- fireEvent ( screen . getByText ( 'Primary' ) , new KeyboardEvent ( 'keydown' , {
60
- key : 'ArrowDown' ,
61
- bubbles : true ,
62
- cancelable : true ,
63
- } ) ) ;
59
+ fireEvent (
60
+ screen . getByText ( 'Primary' ) ,
61
+ new KeyboardEvent ( 'keydown' , {
62
+ key : 'ArrowDown' ,
63
+ bubbles : true ,
64
+ cancelable : true ,
65
+ } )
66
+ ) ;
64
67
65
68
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
66
69
} ) ;
@@ -114,91 +117,109 @@ it('Moves the focus to the next element in the menu after pressing the down arro
114
117
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
115
118
skipClick : true ,
116
119
} ) ;
117
-
120
+
118
121
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
119
122
120
- fireEvent ( screen . getByText ( 'Item 1' ) , new KeyboardEvent ( 'keydown' , {
121
- key : 'ArrowDown' ,
122
- bubbles : true ,
123
- cancelable : true ,
124
- } ) ) ;
125
-
123
+ fireEvent (
124
+ screen . getByText ( 'Item 1' ) ,
125
+ new KeyboardEvent ( 'keydown' , {
126
+ key : 'ArrowDown' ,
127
+ bubbles : true ,
128
+ cancelable : true ,
129
+ } )
130
+ ) ;
131
+
126
132
expect ( screen . getByText ( 'Item 2' ) ) . toHaveFocus ( ) ;
127
133
} ) ;
128
134
129
135
it ( 'Moves the focus to the previous element in the menu after pressing the up arrow' , ( ) => {
130
136
render ( < TestComponent /> ) ;
131
137
132
138
userEvent . tab ( ) ;
133
-
139
+
134
140
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
135
141
skipClick : true ,
136
142
} ) ;
137
-
143
+
138
144
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
139
145
140
- fireEvent ( screen . getByText ( 'Item 1' ) , new KeyboardEvent ( 'keydown' , {
141
- key : 'ArrowDown' ,
142
- bubbles : true ,
143
- cancelable : true ,
144
- } ) ) ;
145
-
146
+ fireEvent (
147
+ screen . getByText ( 'Item 1' ) ,
148
+ new KeyboardEvent ( 'keydown' , {
149
+ key : 'ArrowDown' ,
150
+ bubbles : true ,
151
+ cancelable : true ,
152
+ } )
153
+ ) ;
154
+
146
155
expect ( screen . getByText ( 'Item 2' ) ) . toHaveFocus ( ) ;
147
156
148
- fireEvent ( screen . getByText ( 'Item 2' ) , new KeyboardEvent ( 'keydown' , {
149
- key : 'ArrowUp' ,
150
- bubbles : true ,
151
- cancelable : true ,
152
- } ) ) ;
153
-
157
+ fireEvent (
158
+ screen . getByText ( 'Item 2' ) ,
159
+ new KeyboardEvent ( 'keydown' , {
160
+ key : 'ArrowUp' ,
161
+ bubbles : true ,
162
+ cancelable : true ,
163
+ } )
164
+ ) ;
165
+
154
166
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
155
167
} ) ;
156
168
157
169
it ( 'Wraps the focus to the last element when pressing the up arrow at the beginning of the menu' , ( ) => {
158
170
render ( < TestComponent /> ) ;
159
171
160
172
userEvent . tab ( ) ;
161
-
173
+
162
174
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
163
175
skipClick : true ,
164
176
} ) ;
165
-
177
+
166
178
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
167
179
168
- fireEvent ( screen . getByText ( 'Item 1' ) , new KeyboardEvent ( 'keydown' , {
169
- key : 'ArrowUp' ,
170
- bubbles : true ,
171
- cancelable : true ,
172
- } ) ) ;
173
-
180
+ fireEvent (
181
+ screen . getByText ( 'Item 1' ) ,
182
+ new KeyboardEvent ( 'keydown' , {
183
+ key : 'ArrowUp' ,
184
+ bubbles : true ,
185
+ cancelable : true ,
186
+ } )
187
+ ) ;
188
+
174
189
expect ( screen . getByText ( 'Item 3' ) ) . toHaveFocus ( ) ;
175
190
} ) ;
176
191
177
192
it ( 'Wraps the focus to the first element when pressing the down arrow at the end of the menu' , ( ) => {
178
193
render ( < TestComponent /> ) ;
179
194
180
195
userEvent . tab ( ) ;
181
-
196
+
182
197
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
183
198
skipClick : true ,
184
199
} ) ;
185
-
200
+
186
201
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
187
202
188
- fireEvent ( screen . getByText ( 'Item 1' ) , new KeyboardEvent ( 'keydown' , {
189
- key : 'ArrowUp' ,
190
- bubbles : true ,
191
- cancelable : true ,
192
- } ) ) ;
193
-
203
+ fireEvent (
204
+ screen . getByText ( 'Item 1' ) ,
205
+ new KeyboardEvent ( 'keydown' , {
206
+ key : 'ArrowUp' ,
207
+ bubbles : true ,
208
+ cancelable : true ,
209
+ } )
210
+ ) ;
211
+
194
212
expect ( screen . getByText ( 'Item 3' ) ) . toHaveFocus ( ) ;
195
213
196
- fireEvent ( screen . getByText ( 'Item 3' ) , new KeyboardEvent ( 'keydown' , {
197
- key : 'ArrowDown' ,
198
- bubbles : true ,
199
- cancelable : true ,
200
- } ) ) ;
201
-
214
+ fireEvent (
215
+ screen . getByText ( 'Item 3' ) ,
216
+ new KeyboardEvent ( 'keydown' , {
217
+ key : 'ArrowDown' ,
218
+ bubbles : true ,
219
+ cancelable : true ,
220
+ } )
221
+ ) ;
222
+
202
223
expect ( screen . getByText ( 'Item 1' ) ) . toHaveFocus ( ) ;
203
224
} ) ;
204
225
@@ -222,7 +243,7 @@ it('Sets isOpen to false after pressing tab while focused on a menu item', () =>
222
243
render ( < TestComponent /> ) ;
223
244
224
245
userEvent . tab ( ) ;
225
-
246
+
226
247
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
227
248
skipClick : true ,
228
249
} ) ;
@@ -236,11 +257,11 @@ it('Moves the focus to the menu button after pressing escape while focused on a
236
257
render ( < TestComponent /> ) ;
237
258
238
259
userEvent . tab ( ) ;
239
-
260
+
240
261
userEvent . type ( screen . getByText ( 'Primary' ) , '{enter}' , {
241
262
skipClick : true ,
242
263
} ) ;
243
-
264
+
244
265
userEvent . type ( screen . getByText ( 'Item 1' ) , '{esc}' , {
245
266
skipClick : true ,
246
267
} ) ;
@@ -282,29 +303,41 @@ it('Can navigate to a dynamically-added item', () => {
282
303
283
304
userEvent . click ( screen . getByText ( 'Primary' ) ) ;
284
305
285
- fireEvent ( screen . getByText ( 'Primary' ) , new KeyboardEvent ( 'keydown' , {
286
- key : 'ArrowDown' ,
287
- bubbles : true ,
288
- cancelable : true ,
289
- } ) ) ;
290
-
291
- fireEvent ( screen . getByText ( 'Item 1' ) , new KeyboardEvent ( 'keydown' , {
292
- key : 'ArrowDown' ,
293
- bubbles : true ,
294
- cancelable : true ,
295
- } ) ) ;
296
-
297
- fireEvent ( screen . getByText ( 'Item 2' ) , new KeyboardEvent ( 'keydown' , {
298
- key : 'ArrowDown' ,
299
- bubbles : true ,
300
- cancelable : true ,
301
- } ) ) ;
302
-
303
- fireEvent ( screen . getByText ( 'Item 3' ) , new KeyboardEvent ( 'keydown' , {
304
- key : 'ArrowDown' ,
305
- bubbles : true ,
306
- cancelable : true ,
307
- } ) ) ;
308
-
306
+ fireEvent (
307
+ screen . getByText ( 'Primary' ) ,
308
+ new KeyboardEvent ( 'keydown' , {
309
+ key : 'ArrowDown' ,
310
+ bubbles : true ,
311
+ cancelable : true ,
312
+ } )
313
+ ) ;
314
+
315
+ fireEvent (
316
+ screen . getByText ( 'Item 1' ) ,
317
+ new KeyboardEvent ( 'keydown' , {
318
+ key : 'ArrowDown' ,
319
+ bubbles : true ,
320
+ cancelable : true ,
321
+ } )
322
+ ) ;
323
+
324
+ fireEvent (
325
+ screen . getByText ( 'Item 2' ) ,
326
+ new KeyboardEvent ( 'keydown' , {
327
+ key : 'ArrowDown' ,
328
+ bubbles : true ,
329
+ cancelable : true ,
330
+ } )
331
+ ) ;
332
+
333
+ fireEvent (
334
+ screen . getByText ( 'Item 3' ) ,
335
+ new KeyboardEvent ( 'keydown' , {
336
+ key : 'ArrowDown' ,
337
+ bubbles : true ,
338
+ cancelable : true ,
339
+ } )
340
+ ) ;
341
+
309
342
expect ( screen . getByText ( 'Item 4' ) ) . toHaveFocus ( ) ;
310
343
} ) ;
0 commit comments