@@ -126,3 +126,29 @@ test("options selected", async ({ page }) => {
126126 // Assert the first option is now selected
127127 await expect ( firstOption ) . toHaveAttribute ( "aria-selected" , "true" ) ;
128128} ) ;
129+
130+ test ( "down arrow selects first element" , async ( { page } ) => {
131+ await page . goto ( "http://127.0.0.1:8080/component/?name=select&" ) ;
132+ // Find Select a fruit...
133+ let selectTrigger = page . locator ( ".select-trigger" ) ;
134+ const selectMenu = page . locator ( ".select-list" ) ;
135+ await selectTrigger . focus ( ) ;
136+
137+ // Select the first option
138+ await page . keyboard . press ( "ArrowDown" ) ;
139+ const firstOption = selectMenu . getByRole ( "option" , { name : "apple" } ) ;
140+ await expect ( firstOption ) . toBeFocused ( ) ;
141+ } ) ;
142+
143+ test ( "up arrow selects last element" , async ( { page } ) => {
144+ await page . goto ( "http://127.0.0.1:8080/component/?name=select&" ) ;
145+ // Find Select a fruit...
146+ let selectTrigger = page . locator ( ".select-trigger" ) ;
147+ const selectMenu = page . locator ( ".select-list" ) ;
148+ await selectTrigger . focus ( ) ;
149+
150+ // Select the first option
151+ await page . keyboard . press ( "ArrowUp" ) ;
152+ const firstOption = selectMenu . getByRole ( "option" , { name : "other" } ) ;
153+ await expect ( firstOption ) . toBeFocused ( ) ;
154+ } ) ;
0 commit comments