@@ -84,4 +84,59 @@ describe('List.Firefox-Scroll', () => {
84
84
expect ( wheelPreventDefault ) . not . toHaveBeenCalled ( ) ;
85
85
expect ( firefoxPreventDefault ) . toHaveBeenCalledTimes ( 1 ) ;
86
86
} ) ;
87
+
88
+ it ( 'should call preventDefault on MozMousePixelScroll' , ( ) => {
89
+ const preventDefault = jest . fn ( ) ;
90
+ const wrapper = genList ( { itemHeight : 20 , height : 100 , data : genData ( 100 ) } ) ;
91
+ const ulElement = wrapper . find ( 'ul' ) . instance ( ) ;
92
+
93
+ act ( ( ) => {
94
+ const event = new Event ( 'MozMousePixelScroll' ) ;
95
+ event . detail = 6 ;
96
+ event . preventDefault = preventDefault ;
97
+ ulElement . dispatchEvent ( event ) ;
98
+
99
+ jest . runAllTimers ( ) ;
100
+ } ) ;
101
+
102
+ expect ( preventDefault ) . toHaveBeenCalled ( ) ;
103
+ } ) ;
104
+
105
+ it ( 'should not call preventDefault on MozMousePixelScroll when scrolling up at top boundary' , ( ) => {
106
+ const preventDefault = jest . fn ( ) ;
107
+ const wrapper = genList ( { itemHeight : 20 , height : 100 , data : genData ( 100 ) } ) ;
108
+ const ulElement = wrapper . find ( 'ul' ) . instance ( ) ;
109
+
110
+ act ( ( ) => {
111
+ const event = new Event ( 'MozMousePixelScroll' ) ;
112
+ event . detail = - 6 ;
113
+ event . preventDefault = preventDefault ;
114
+ ulElement . dispatchEvent ( event ) ;
115
+
116
+ jest . runAllTimers ( ) ;
117
+ } ) ;
118
+
119
+ expect ( preventDefault ) . not . toHaveBeenCalled ( ) ;
120
+ } ) ;
121
+ it ( 'should not call preventDefault on MozMousePixelScroll when scrolling down at bottom boundary' , ( ) => {
122
+ const preventDefault = jest . fn ( ) ;
123
+ const listRef = React . createRef ( ) ;
124
+ const wrapper = genList ( { itemHeight : 20 , height : 100 , data : genData ( 100 ) , ref : listRef } ) ;
125
+ const ulElement = wrapper . find ( 'ul' ) . instance ( ) ;
126
+ // scroll to bottom
127
+ listRef . current . scrollTo ( 99999 ) ;
128
+ jest . runAllTimers ( ) ;
129
+ expect ( wrapper . find ( 'ul' ) . instance ( ) . scrollTop ) . toEqual ( 1900 ) ;
130
+
131
+ act ( ( ) => {
132
+ const event = new Event ( 'MozMousePixelScroll' ) ;
133
+ event . detail = 6 ;
134
+ event . preventDefault = preventDefault ;
135
+ ulElement . dispatchEvent ( event ) ;
136
+
137
+ jest . runAllTimers ( ) ;
138
+ } ) ;
139
+
140
+ expect ( preventDefault ) . not . toHaveBeenCalled ( ) ;
141
+ } ) ;
87
142
} ) ;
0 commit comments