@@ -238,6 +238,7 @@ describe('table > filtering', () => {
238
238
239
239
it ( 'filter debouncing works' , async ( ) => {
240
240
jest . useFakeTimers ( )
241
+ let lastFilterTimer = null
241
242
const wrapper = mount ( BTable , {
242
243
propsData : {
243
244
fields : testFields ,
@@ -254,6 +255,7 @@ describe('table > filtering', () => {
254
255
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 1 )
255
256
expect ( wrapper . emitted ( 'input' ) [ 0 ] [ 0 ] ) . toEqual ( testItems )
256
257
expect ( wrapper . vm . $_filterTimer ) . toBe ( null )
258
+ lastFilterTimer = wrapper . vm . $_filterTimer
257
259
258
260
// Set filter to a single character
259
261
wrapper . setProps ( {
@@ -262,6 +264,9 @@ describe('table > filtering', () => {
262
264
await waitNT ( wrapper . vm )
263
265
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 1 )
264
266
expect ( wrapper . vm . $_filterTimer ) . not . toBe ( null )
267
+ expect ( wrapper . vm . $_filterTimer ) . not . toEqual ( lastFilterTimer )
268
+ lastFilterTimer = wrapper . vm . $_filterTimer
269
+ expect ( wrapper . vm . localFilter ) . not . toEqual ( '1' )
265
270
266
271
// Change filter
267
272
wrapper . setProps ( {
@@ -270,12 +275,17 @@ describe('table > filtering', () => {
270
275
await waitNT ( wrapper . vm )
271
276
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 1 )
272
277
expect ( wrapper . vm . $_filterTimer ) . not . toBe ( null )
278
+ expect ( wrapper . vm . $_filterTimer ) . not . toEqual ( lastFilterTimer )
279
+ lastFilterTimer = wrapper . vm . $_filterTimer
280
+ expect ( wrapper . vm . localFilter ) . not . toEqual ( 'z' )
273
281
274
282
jest . runTimersToTime ( 101 )
275
283
await waitNT ( wrapper . vm )
276
284
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 2 )
277
285
expect ( wrapper . emitted ( 'input' ) [ 1 ] [ 0 ] ) . toEqual ( [ testItems [ 2 ] ] )
278
- expect ( wrapper . vm . $_filterTimer ) . toBe ( null )
286
+ expect ( wrapper . vm . $_filterTimer ) . toEqual ( lastFilterTimer )
287
+ lastFilterTimer = wrapper . vm . $_filterTimer
288
+ expect ( wrapper . vm . localFilter ) . toEqual ( 'z' )
279
289
280
290
// Change filter
281
291
wrapper . setProps ( {
@@ -284,6 +294,10 @@ describe('table > filtering', () => {
284
294
await waitNT ( wrapper . vm )
285
295
expect ( wrapper . vm . $_filterTimer ) . not . toBe ( null )
286
296
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 2 )
297
+ expect ( wrapper . vm . $_filterTimer ) . not . toEqual ( lastFilterTimer )
298
+ lastFilterTimer = wrapper . vm . $_filterTimer
299
+ expect ( wrapper . vm . localFilter ) . not . toEqual ( '1' )
300
+ expect ( wrapper . vm . localFilter ) . toEqual ( 'z' )
287
301
288
302
// Change filter-debounce to no debouncing
289
303
wrapper . setProps ( {
@@ -295,6 +309,7 @@ describe('table > filtering', () => {
295
309
// Should immediately filter the items
296
310
expect ( wrapper . emitted ( 'input' ) . length ) . toBe ( 3 )
297
311
expect ( wrapper . emitted ( 'input' ) [ 2 ] [ 0 ] ) . toEqual ( [ testItems [ 1 ] ] )
312
+ expect ( wrapper . vm . localFilter ) . toEqual ( '1' )
298
313
299
314
wrapper . destroy ( )
300
315
} )
0 commit comments