@@ -209,18 +209,13 @@ describe('List.Scroll', () => {
209209 it ( 'onScroll should trigger on correct target' , ( ) => {
210210 // Save in tmp variable since React will clean up this
211211 let currentTarget ;
212- const onScroll = jest . fn ( e => {
212+ const onScroll = jest . fn ( ( e ) => {
213213 ( { currentTarget } = e ) ;
214214 } ) ;
215215 const wrapper = genList ( { itemHeight : 20 , height : 100 , data : genData ( 100 ) , onScroll } ) ;
216216 wrapper . find ( '.rc-virtual-list-holder' ) . simulate ( 'scroll' ) ;
217217
218- expect ( currentTarget ) . toBe (
219- wrapper
220- . find ( '.rc-virtual-list-holder' )
221- . hostNodes ( )
222- . instance ( ) ,
223- ) ;
218+ expect ( currentTarget ) . toBe ( wrapper . find ( '.rc-virtual-list-holder' ) . hostNodes ( ) . instance ( ) ) ;
224219 } ) ;
225220
226221 describe ( 'scroll should in range' , ( ) => {
@@ -269,5 +264,26 @@ describe('List.Scroll', () => {
269264
270265 expect ( wrapper . find ( 'ScrollBar' ) . props ( ) . scrollTop ) . toEqual ( 1900 ) ;
271266 } ) ;
267+
268+ it ( 'dynamic large to small' , ( ) => {
269+ const wrapper = genList ( { itemHeight : 20 , height : 100 , data : genData ( 1000 ) } ) ;
270+ const ulElement = wrapper . find ( 'ul' ) . instance ( ) ;
271+
272+ // To bottom
273+ act ( ( ) => {
274+ const wheelEvent = new Event ( 'wheel' ) ;
275+ wheelEvent . deltaY = 9999999 ;
276+ ulElement . dispatchEvent ( wheelEvent ) ;
277+
278+ jest . runAllTimers ( ) ;
279+ } ) ;
280+
281+ // Cut data len
282+ wrapper . setProps ( {
283+ data : genData ( 20 ) ,
284+ } ) ;
285+
286+ expect ( wrapper . find ( 'li' ) . length ) . toBeLessThan ( 10 ) ;
287+ } ) ;
272288 } ) ;
273289} ) ;
0 commit comments