@@ -449,6 +449,31 @@ describe("EmojiPicker.Search", () => {
449449 } ) ;
450450
451451 it ( "should support a controlled search value" , async ( ) => {
452+ function Page ( ) {
453+ const [ search , setSearch ] = useState ( "" ) ;
454+
455+ return (
456+ < DefaultPage
457+ searchOnChange = { ( event ) => setSearch ( event . target . value ) }
458+ searchValue = { search }
459+ />
460+ ) ;
461+ }
462+
463+ page . render ( < Page /> ) ;
464+
465+ await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "" ) ;
466+
467+ await page . getByTestId ( "search" ) . fill ( "cat" ) ;
468+ await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "cat" ) ;
469+ await expect . element ( page . getByText ( "🐈" ) ) . toBeInTheDocument ( ) ;
470+
471+ await page . getByTestId ( "search" ) . fill ( "123456789" ) ;
472+ await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "123456789" ) ;
473+ await expect . element ( page . getByTestId ( "empty" ) ) . toBeInTheDocument ( ) ;
474+ } ) ;
475+
476+ it ( "should support an external controlled search value" , async ( ) => {
452477 function Page ( ) {
453478 const [ search , setSearch ] = useState ( "" ) ;
454479
@@ -457,13 +482,11 @@ describe("EmojiPicker.Search", () => {
457482 searchOnChange = { ( event ) => setSearch ( event . target . value ) }
458483 searchValue = { search }
459484 >
460- < button
461- data-testid = "update-search"
462- onClick = { ( ) => setSearch ( "hello" ) }
463- type = "button"
464- >
465- Update search
466- </ button >
485+ < input
486+ data-testid = "controlled-search"
487+ onChange = { ( event ) => setSearch ( event . target . value ) }
488+ type = "text"
489+ />
467490 </ DefaultPage >
468491 ) ;
469492 }
@@ -472,9 +495,13 @@ describe("EmojiPicker.Search", () => {
472495
473496 await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "" ) ;
474497
475- await page . getByTestId ( "update-search" ) . click ( ) ;
498+ await page . getByTestId ( "controlled-search" ) . fill ( "cat" ) ;
499+ await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "cat" ) ;
500+ await expect . element ( page . getByText ( "🐈" ) ) . toBeInTheDocument ( ) ;
476501
477- await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "hello" ) ;
502+ await page . getByTestId ( "controlled-search" ) . fill ( "123456789" ) ;
503+ await expect . element ( page . getByTestId ( "search" ) ) . toHaveValue ( "123456789" ) ;
504+ await expect . element ( page . getByTestId ( "empty" ) ) . toBeInTheDocument ( ) ;
478505 } ) ;
479506} ) ;
480507
0 commit comments