@@ -576,22 +576,8 @@ describe('List.Scroll', () => {
576
576
) ;
577
577
} ) ;
578
578
579
- it ( 'mouse down drag' , ( ) => {
580
- const onScroll = jest . fn ( ) ;
581
- const { container } = render (
582
- < List
583
- component = "ul"
584
- itemKey = "id"
585
- itemHeight = { 20 }
586
- height = { 100 }
587
- data = { genData ( 100 ) }
588
- onScroll = { onScroll }
589
- >
590
- { ( { id } ) => < li > { id } </ li > }
591
- </ List > ,
592
- ) ;
593
-
594
- function dragDown ( mouseY ) {
579
+ describe ( 'mouse down drag' , ( ) => {
580
+ function dragDown ( container , mouseY ) {
595
581
fireEvent . mouseDown ( container . querySelector ( 'li' ) ) ;
596
582
597
583
let moveEvent = createEvent . mouseMove ( container . querySelector ( 'li' ) ) ;
@@ -605,18 +591,57 @@ describe('List.Scroll', () => {
605
591
fireEvent . mouseUp ( container . querySelector ( 'li' ) ) ;
606
592
}
607
593
608
- function getScrollTop ( ) {
594
+ function getScrollTop ( container ) {
609
595
const innerEle = container . querySelector ( '.rc-virtual-list-holder-inner' ) ;
610
596
const { transform } = innerEle . style ;
611
597
return Number ( transform . match ( / \d + / ) [ 0 ] ) ;
612
598
}
613
599
614
- // Drag down
615
- dragDown ( 100 ) ;
616
- expect ( getScrollTop ( ) ) . toBeGreaterThan ( 0 ) ;
600
+ it ( 'can move' , ( ) => {
601
+ const onScroll = jest . fn ( ) ;
602
+ const { container } = render (
603
+ < List
604
+ component = "ul"
605
+ itemKey = "id"
606
+ itemHeight = { 20 }
607
+ height = { 100 }
608
+ data = { genData ( 100 ) }
609
+ onScroll = { onScroll }
610
+ >
611
+ { ( { id } ) => < li > { id } </ li > }
612
+ </ List > ,
613
+ ) ;
617
614
618
- // Drag up
619
- dragDown ( - 100 ) ;
620
- expect ( getScrollTop ( ) ) . toBe ( 0 ) ;
615
+ // Drag down
616
+ dragDown ( container , 100 ) ;
617
+ expect ( getScrollTop ( container ) ) . toBeGreaterThan ( 0 ) ;
618
+
619
+ // Drag up
620
+ dragDown ( container , - 100 ) ;
621
+ expect ( getScrollTop ( container ) ) . toBe ( 0 ) ;
622
+ } ) ;
623
+
624
+ it ( 'can not move when item add draggable' , ( ) => {
625
+ const onScroll = jest . fn ( ) ;
626
+ const { container } = render (
627
+ < List
628
+ component = "ul"
629
+ itemKey = "id"
630
+ itemHeight = { 20 }
631
+ height = { 100 }
632
+ data = { genData ( 100 ) }
633
+ onScroll = { onScroll }
634
+ >
635
+ { ( { id } ) => < li draggable > { id } </ li > }
636
+ </ List > ,
637
+ ) ;
638
+
639
+ // Initial scroll should be 0
640
+ expect ( getScrollTop ( container ) ) . toEqual ( 0 ) ;
641
+ // Simulate drag action
642
+ dragDown ( container , 100 ) ;
643
+ // Assert that scroll did not change after drag
644
+ expect ( getScrollTop ( container ) ) . toEqual ( 0 ) ;
645
+ } ) ;
621
646
} ) ;
622
647
} ) ;
0 commit comments