@@ -574,8 +574,7 @@ describe('src/cy/commands/actions/type - #type', () => {
574
574
575
575
targets . forEach ( ( targetId ) => {
576
576
it ( `${ targetId } ` , ( ) => {
577
- cy . get ( `#target-${ targetId } ` ) . focus ( )
578
- cy . get ( `#target-${ targetId } ` ) . type ( '{enter}' )
577
+ cy . get ( `#target-${ targetId } ` ) . focus ( ) . type ( '{enter}' )
579
578
580
579
cy . get ( 'li' ) . eq ( 0 ) . should ( 'have.text' , 'keydown' )
581
580
cy . get ( 'li' ) . eq ( 1 ) . should ( 'have.text' , 'keypress' )
@@ -593,8 +592,7 @@ describe('src/cy/commands/actions/type - #type', () => {
593
592
594
593
targets . forEach ( ( targetId ) => {
595
594
it ( `${ targetId } ` , ( ) => {
596
- cy . get ( `#target-${ targetId } ` ) . focus ( )
597
- cy . get ( `#target-${ targetId } ` ) . type ( '{enter}' )
595
+ cy . get ( `#target-${ targetId } ` ) . focus ( ) . type ( '{enter}' )
598
596
599
597
cy . get ( 'li' ) . eq ( 0 ) . should ( 'have.text' , 'keydown' )
600
598
cy . get ( 'li' ) . eq ( 1 ) . should ( 'have.text' , 'keypress' )
@@ -610,17 +608,30 @@ describe('src/cy/commands/actions/type - #type', () => {
610
608
} )
611
609
612
610
const targets = [
613
- 'button-tag' ,
614
- 'input-button' ,
615
- 'input-image' ,
616
- 'input-reset' ,
617
- 'input-submit' ,
611
+ '#target- button-tag' ,
612
+ '#target- input-button' ,
613
+ '#target- input-image' ,
614
+ '#target- input-reset' ,
615
+ '#target- input-submit' ,
618
616
]
619
617
620
618
describe ( `triggers with single space` , ( ) => {
621
- targets . forEach ( ( targetId ) => {
622
- it ( targetId , ( ) => {
623
- cy . get ( `#target-${ targetId } ` ) . focus ( ) . type ( ' ' )
619
+ targets . forEach ( ( target ) => {
620
+ it ( target , ( ) => {
621
+ const events = [ ]
622
+
623
+ $ ( target ) . on ( 'keydown keypress keyup click' , ( evt ) => {
624
+ events . push ( evt . type )
625
+ } )
626
+
627
+ cy . get ( target ) . focus ( ) . type ( ' ' ) . then ( ( ) => {
628
+ expect ( events ) . to . deep . eq ( [
629
+ 'keydown' ,
630
+ 'keypress' ,
631
+ 'keyup' ,
632
+ 'click' ,
633
+ ] )
634
+ } )
624
635
625
636
cy . get ( 'li' ) . eq ( 0 ) . should ( 'have.text' , 'keydown' )
626
637
cy . get ( 'li' ) . eq ( 1 ) . should ( 'have.text' , 'keypress' )
@@ -630,10 +641,61 @@ describe('src/cy/commands/actions/type - #type', () => {
630
641
} )
631
642
} )
632
643
644
+ describe ( `does not trigger if keyup prevented` , ( ) => {
645
+ targets . forEach ( ( target ) => {
646
+ it ( `${ target } does not fire click event` , ( ) => {
647
+ const events = [ ]
648
+
649
+ $ ( target )
650
+ . on ( 'keydown keypress keyup click' , ( evt ) => {
651
+ events . push ( evt . type )
652
+ } )
653
+ . on ( 'keyup' , ( evt ) => {
654
+ evt . preventDefault ( )
655
+ } )
656
+
657
+ cy . get ( target ) . focus ( ) . type ( ' ' ) . then ( ( ) => {
658
+ expect ( events ) . to . deep . eq ( [
659
+ 'keydown' ,
660
+ 'keypress' ,
661
+ 'keyup' ,
662
+ ] )
663
+ } )
664
+
665
+ cy . get ( 'li' ) . should ( 'have.length' , 3 )
666
+ cy . get ( 'li' ) . eq ( 0 ) . should ( 'have.text' , 'keydown' )
667
+ cy . get ( 'li' ) . eq ( 1 ) . should ( 'have.text' , 'keypress' )
668
+ cy . get ( 'li' ) . eq ( 2 ) . should ( 'have.text' , 'keyup' )
669
+ } )
670
+ } )
671
+ } )
672
+
633
673
describe ( 'triggers after other characters' , ( ) => {
634
- targets . forEach ( ( targetId ) => {
635
- it ( targetId , ( ) => {
636
- cy . get ( `#target-${ targetId } ` ) . focus ( ) . type ( 'asd ' )
674
+ targets . forEach ( ( target ) => {
675
+ it ( target , ( ) => {
676
+ const events = [ ]
677
+
678
+ $ ( target ) . on ( 'keydown keypress keyup click' , ( evt ) => {
679
+ events . push ( evt . type )
680
+ } )
681
+
682
+ cy . get ( target ) . focus ( ) . type ( 'asd ' ) . then ( ( ) => {
683
+ expect ( events ) . to . deep . eq ( [
684
+ 'keydown' ,
685
+ 'keypress' ,
686
+ 'keyup' ,
687
+ 'keydown' ,
688
+ 'keypress' ,
689
+ 'keyup' ,
690
+ 'keydown' ,
691
+ 'keypress' ,
692
+ 'keyup' ,
693
+ 'keydown' ,
694
+ 'keypress' ,
695
+ 'keyup' ,
696
+ 'click' ,
697
+ ] )
698
+ } )
637
699
638
700
cy . get ( 'li' ) . eq ( 12 ) . should ( 'have.text' , 'click' )
639
701
} )
0 commit comments