@@ -216,4 +216,31 @@ describe('Bug Spec', () => {
216
216
} )
217
217
) ;
218
218
219
+ describe ( 'remove with increase' , ( ) =>
220
+ makeTest ( {
221
+ title : 'should shift startIndex' ,
222
+ config : {
223
+ datasourceName : 'limited-1-100-no-delay' ,
224
+ datasourceSettings : { adapter : true , bufferSize : 5 , startIndex : 1 , minIndex : 1 , maxIndex : 100 } ,
225
+ } ,
226
+ it : ( misc : Misc ) => async ( done : Function ) => {
227
+ await misc . relaxNext ( ) ;
228
+ const { settings : { minIndex, maxIndex } , buffer, buffer : { startIndex } } = misc . scroller ;
229
+ const toRemove = [ 1 , 2 , 3 , 4 , 5 ] ;
230
+ await misc . adapter . remove ( {
231
+ predicate : ( { $index } ) => toRemove . includes ( $index ) ,
232
+ increase : true
233
+ } ) ;
234
+ ( misc . datasource as any ) . setProcessGet ( ( result : IndexedItem [ ] ) =>
235
+ removeItems ( result , toRemove , minIndex , maxIndex , true )
236
+ ) ;
237
+ expect ( buffer . startIndex ) . toBe ( startIndex + toRemove . length ) ;
238
+ await misc . scrollMinMax ( ) ;
239
+ const maxItemsCount = Math . ceil ( misc . getViewportSize ( ) * 2 / misc . getItemSize ( ) ) ;
240
+ expect ( buffer . size ) . toBeLessThan ( maxItemsCount ) ;
241
+ done ( ) ;
242
+ }
243
+ } )
244
+ ) ;
245
+
219
246
} ) ;
0 commit comments