1
- import { render as HTMLRender , fireEvent , screen , waitFor } from '@testing-library/react'
1
+ import { render as HTMLRender , fireEvent , waitFor , screen } from '@testing-library/react'
2
2
import userEvent from '@testing-library/user-event'
3
3
import React from 'react'
4
4
import type { AutocompleteInputProps } from '../Autocomplete'
@@ -130,15 +130,14 @@ describe('Autocomplete', () => {
130
130
expect ( onKeyPressMock ) . toHaveBeenCalled ( )
131
131
} )
132
132
133
- it ( 'opens the menu when the input is focused and arrow key is pressed ' , ( ) => {
133
+ it ( 'opens the menu when the input is focused' , ( ) => {
134
134
const { getByLabelText} = HTMLRender (
135
135
< LabelledAutocomplete menuProps = { { items : [ ] , selectedItemIds : [ ] , [ 'aria-labelledby' ] : 'autocompleteLabel' } } /> ,
136
136
)
137
137
const inputNode = getByLabelText ( AUTOCOMPLETE_LABEL )
138
138
139
139
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
140
- fireEvent . click ( inputNode )
141
- fireEvent . keyDown ( inputNode , { key : 'ArrowDown' } )
140
+ fireEvent . focus ( inputNode )
142
141
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . toBe ( 'true' )
143
142
} )
144
143
@@ -149,14 +148,13 @@ describe('Autocomplete', () => {
149
148
const inputNode = getByLabelText ( AUTOCOMPLETE_LABEL )
150
149
151
150
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
152
- fireEvent . click ( inputNode )
153
- fireEvent . keyDown ( inputNode , { key : 'ArrowDown' } )
154
-
151
+ fireEvent . focus ( inputNode )
155
152
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . toBe ( 'true' )
153
+ // eslint-disable-next-line github/no-blur
154
+ fireEvent . blur ( inputNode )
156
155
157
- await userEvent . tab ( )
158
-
159
- expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
156
+ // wait a tick for blur to finish
157
+ await waitFor ( ( ) => expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' ) )
160
158
} )
161
159
162
160
it ( 'sets the input value to the suggested item text and highlights the untyped part of the word' , async ( ) => {
@@ -308,7 +306,7 @@ describe('Autocomplete', () => {
308
306
expect ( onSelectedChangeMock ) . not . toHaveBeenCalled ( )
309
307
if ( inputNode ) {
310
308
fireEvent . focus ( inputNode )
311
- await user . type ( inputNode , '{arrowdown}{ enter}' )
309
+ await user . type ( inputNode , '{enter}' )
312
310
}
313
311
314
312
expect ( onSelectedChangeMock ) . toHaveBeenCalledWith ( [ mockItems [ 0 ] ] )
@@ -331,8 +329,6 @@ describe('Autocomplete', () => {
331
329
if ( inputNode ) {
332
330
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
333
331
await user . click ( inputNode )
334
-
335
- fireEvent . keyDown ( inputNode , { key : 'ArrowDown' } )
336
332
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . toBe ( 'true' )
337
333
await user . click ( getByText ( mockItems [ 1 ] . text ) )
338
334
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . toBe ( 'true' )
@@ -356,7 +352,6 @@ describe('Autocomplete', () => {
356
352
if ( inputNode ) {
357
353
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
358
354
await user . click ( inputNode )
359
- fireEvent . keyDown ( inputNode , { key : 'ArrowDown' } )
360
355
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . toBe ( 'true' )
361
356
await user . click ( getByText ( mockItems [ 1 ] . text ) )
362
357
expect ( inputNode . getAttribute ( 'aria-expanded' ) ) . not . toBe ( 'true' )
0 commit comments