@@ -623,95 +623,69 @@ test.describe('Keyboard Behavior', () => {
623
623
AND the last option is data-highlighted
624
624
WHEN the down key is pressed
625
625
THEN data-highlighted should stay on the last option` , async ( { page } ) => {
626
- const {
627
- getTrigger,
628
- getItemAt : getOptionAt ,
629
- openListbox,
630
- } = await setup ( page , 'hero' ) ;
626
+ const { driver : d } = await setup ( page , 'hero' ) ;
631
627
632
628
// initially last option is highlighted
633
- await openListbox ( 'Enter' ) ;
634
- const trigger = getTrigger ( ) ;
635
- await trigger . focus ( ) ;
636
- await trigger . press ( 'End' ) ;
637
-
638
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'data-highlighted' ) ;
629
+ await d . openListbox ( 'Enter' ) ;
630
+ await d . getItemAt ( 0 ) . press ( 'End' ) ;
639
631
640
- await trigger . focus ( ) ;
641
- await trigger . press ( 'ArrowDown' ) ;
642
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'data-highlighted' ) ;
632
+ await d . getItemAt ( 'last' ) . press ( 'ArrowDown' ) ;
633
+ await expect ( d . getItemAt ( 'last' ) ) . toHaveAttribute ( 'data-highlighted' ) ;
643
634
} ) ;
644
635
645
636
test ( `GIVEN an open basic select
646
637
AND the first option is data-highlighted
647
638
WHEN the up arrow key is pressed
648
639
THEN data-highlighted should stay on the first option` , async ( { page } ) => {
649
- const {
650
- getTrigger,
651
- getItemAt : getOptionAt ,
652
- openListbox,
653
- } = await setup ( page , 'hero' ) ;
640
+ const { driver : d } = await setup ( page , 'hero' ) ;
654
641
655
- await openListbox ( 'Enter' ) ;
656
- const option = getOptionAt ( 0 ) ;
657
- await expect ( option ) . toHaveAttribute ( 'data-highlighted' ) ;
658
- await getTrigger ( ) . focus ( ) ;
659
- await getTrigger ( ) . press ( 'ArrowUp' ) ;
660
- await expect ( option ) . toHaveAttribute ( 'data-highlighted' ) ;
642
+ await d . openListbox ( 'Enter' ) ;
643
+ const firstItem = d . getItemAt ( 0 ) ;
644
+ await expect ( firstItem ) . toHaveAttribute ( 'data-highlighted' ) ;
645
+ await firstItem . press ( 'ArrowUp' ) ;
646
+ await expect ( firstItem ) . toHaveAttribute ( 'data-highlighted' ) ;
661
647
} ) ;
662
648
663
649
test ( `GIVEN a closed basic select
664
650
AND the last option is selected
665
651
WHEN the right arrow key is pressed
666
652
THEN it should stay on the last option` , async ( { page } ) => {
667
- const {
668
- getTrigger,
669
- getItemAt : getOptionAt ,
670
- getListbox,
671
- openListbox,
672
- } = await setup ( page , 'hero' ) ;
653
+ const { driver : d } = await setup ( page , 'hero' ) ;
673
654
674
655
// initially last option is highlighted & listbox closed
675
- await openListbox ( 'Enter' ) ;
676
- await getTrigger ( ) . focus ( ) ;
677
- await getTrigger ( ) . press ( 'End' ) ;
656
+ await d . openListbox ( 'Enter' ) ;
657
+ await d . getItemAt ( 0 ) . press ( 'End' ) ;
678
658
679
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'data-highlighted' ) ;
680
- await getTrigger ( ) . press ( 'Enter' ) ;
681
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
682
- await expect ( getListbox ( ) ) . toBeHidden ( ) ;
659
+ const lastItem = d . getItemAt ( 'last' ) ;
660
+ await expect ( lastItem ) . toHaveAttribute ( 'data-highlighted' ) ;
661
+ await lastItem . press ( 'Enter' ) ;
662
+ await expect ( lastItem ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
663
+ await expect ( d . getListbox ( ) ) . toBeHidden ( ) ;
683
664
684
- await getTrigger ( ) . focus ( ) ;
685
- await getTrigger ( ) . press ( 'ArrowRight' ) ;
686
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'data-highlighted' ) ;
687
- await expect ( getOptionAt ( 'last' ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
665
+ await d . getTrigger ( ) . press ( 'ArrowRight' ) ;
666
+ await expect ( lastItem ) . toHaveAttribute ( 'data-highlighted' ) ;
667
+ await expect ( lastItem ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
688
668
} ) ;
689
669
690
670
test ( `GIVEN a closed basic select
691
671
AND the first option is selected
692
672
WHEN the left arrow key is pressed
693
673
THEN it should stay on the first option` , async ( { page } ) => {
694
- const {
695
- getTrigger,
696
- getItemAt : getOptionAt ,
697
- getListbox,
698
- openListbox,
699
- } = await setup ( page , 'hero' ) ;
674
+ const { driver : d } = await setup ( page , 'hero' ) ;
700
675
701
676
// initially first option is highlighted & listbox closed
702
- await openListbox ( 'Enter' ) ;
703
- await expect ( getListbox ( ) ) . toBeVisible ( ) ;
704
- await getTrigger ( ) . focus ( ) ;
705
- await getTrigger ( ) . press ( 'Enter' ) ;
677
+ await d . openListbox ( 'Enter' ) ;
678
+ await expect ( d . getListbox ( ) ) . toBeVisible ( ) ;
679
+ await d . getItemAt ( 0 ) . press ( 'Enter' ) ;
706
680
707
- await expect ( getOptionAt ( 0 ) ) . toHaveAttribute ( 'data-highlighted' ) ;
708
- await expect ( getOptionAt ( 0 ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
709
- await expect ( getListbox ( ) ) . toBeHidden ( ) ;
681
+ await expect ( d . getItemAt ( 0 ) ) . toHaveAttribute ( 'data-highlighted' ) ;
682
+ await expect ( d . getItemAt ( 0 ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
683
+ await expect ( d . getListbox ( ) ) . toBeHidden ( ) ;
710
684
711
- await getTrigger ( ) . focus ( ) ;
712
- await getTrigger ( ) . press ( 'ArrowLeft' ) ;
713
- await expect ( getOptionAt ( 0 ) ) . toHaveAttribute ( 'data-highlighted' ) ;
714
- await expect ( getOptionAt ( 0 ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
685
+ await d . getTrigger ( ) . focus ( ) ;
686
+ await d . getTrigger ( ) . press ( 'ArrowLeft' ) ;
687
+ await expect ( d . getItemAt ( 0 ) ) . toHaveAttribute ( 'data-highlighted' ) ;
688
+ await expect ( d . getItemAt ( 0 ) ) . toHaveAttribute ( 'aria-selected' , 'true' ) ;
715
689
} ) ;
716
690
} ) ;
717
691
0 commit comments