@@ -112,14 +112,15 @@ describe('AdjustableSidebarWidth', () => {
112
112
assertWidth ( wrapper , LARGE_DEFAULT_WIDTH ) ;
113
113
} ) ;
114
114
115
- it ( 'changes the `width`, to the next closest max or min, on mount, as soon as the breakpoint gets changed' , ( ) => {
115
+ it ( 'changes the `width`, to the next closest max or min, on mount, as soon as the breakpoint gets changed' , async ( ) => {
116
116
const wrapper = createWrapper ( {
117
117
data : ( ) => ( {
118
118
width : 650 ,
119
119
} ) ,
120
120
} ) ;
121
121
assertWidth ( wrapper , 650 ) ;
122
122
wrapper . findComponent ( BreakpointEmitter ) . vm . $emit ( 'change' , 'medium' ) ;
123
+ await wrapper . vm . $nextTick ( ) ;
123
124
assertWidth ( wrapper , 500 ) ; // 50% on medium
124
125
} ) ;
125
126
@@ -130,11 +131,13 @@ describe('AdjustableSidebarWidth', () => {
130
131
const emitter = wrapper . findComponent ( BreakpointEmitter ) ;
131
132
expect ( emitter . props ( 'scope' ) ) . toEqual ( BreakpointScopes . nav ) ;
132
133
emitter . vm . $emit ( 'change' , BreakpointName . small ) ;
134
+ await wrapper . vm . $nextTick ( ) ;
133
135
expect ( aside . classes ( ) ) . toContain ( 'no-transition' ) ;
134
136
await waitFrames ( 5 ) ;
135
137
expect ( aside . classes ( ) ) . not . toContain ( 'no-transition' ) ;
136
138
// try going back to large now
137
139
emitter . vm . $emit ( 'change' , BreakpointName . large ) ;
140
+ await wrapper . vm . $nextTick ( ) ;
138
141
expect ( aside . classes ( ) ) . toContain ( 'no-transition' ) ;
139
142
await waitFrames ( 5 ) ;
140
143
expect ( aside . classes ( ) ) . not . toContain ( 'no-transition' ) ;
@@ -253,7 +256,7 @@ describe('AdjustableSidebarWidth', () => {
253
256
expect ( boundingClientSpy ) . toHaveBeenCalledTimes ( 2 ) ;
254
257
} ) ;
255
258
256
- it ( 'allows closing the sidebar, with Esc' , ( ) => {
259
+ it ( 'allows closing the sidebar, with Esc' , async ( ) => {
257
260
const wrapper = createWrapper ( {
258
261
propsData : {
259
262
shownOnMobile : true ,
@@ -262,6 +265,7 @@ describe('AdjustableSidebarWidth', () => {
262
265
window . dispatchEvent ( createEvent ( 'keydown' , {
263
266
key : 'Escape' ,
264
267
} ) ) ;
268
+ await wrapper . vm . $nextTick ( ) ;
265
269
expect ( wrapper . emitted ( 'update:shownOnMobile' ) ) . toEqual ( [ [ false ] ] ) ;
266
270
} ) ;
267
271
@@ -354,14 +358,15 @@ describe('AdjustableSidebarWidth', () => {
354
358
expect ( wrapper . vm . asideStyles ) . toHaveProperty ( '--app-height' , '700px' ) ;
355
359
} ) ;
356
360
357
- it ( 'allows dragging the handle to expand/contract the sidebar, with the mouse' , ( ) => {
361
+ it ( 'allows dragging the handle to expand/contract the sidebar, with the mouse' , async ( ) => {
358
362
const wrapper = createWrapper ( ) ;
359
363
const aside = wrapper . findComponent ( '.aside' ) ;
360
364
// assert dragging
361
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' , { type : 'mouseevent' } ) ;
365
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' ) ;
362
366
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
363
367
clientX : 500 ,
364
368
} ) ) ;
369
+ await wrapper . vm . $nextTick ( ) ;
365
370
// assert class
366
371
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
367
372
assertWidth ( wrapper , 400 ) ; // offset is 100, so we remove it from the clientX
@@ -372,6 +377,7 @@ describe('AdjustableSidebarWidth', () => {
372
377
assertWidth ( wrapper , maxWidth ) ;
373
378
// assert drop
374
379
document . dispatchEvent ( createEvent ( eventsMap . mouse . end ) ) ;
380
+ await wrapper . vm . $nextTick ( ) ;
375
381
// assert emit event
376
382
expect ( wrapper . emitted ( 'width-change' ) ) . toHaveLength ( 2 ) ;
377
383
expect ( wrapper . emitted ( 'width-change' ) [ 1 ] ) . toEqual ( [ maxWidth ] ) ;
@@ -388,16 +394,17 @@ describe('AdjustableSidebarWidth', () => {
388
394
assertWidth ( wrapper , maxWidth ) ;
389
395
} ) ;
390
396
391
- it ( 'allows dragging the handle to expand/contract the sidebar, with the touch device' , ( ) => {
397
+ it ( 'allows dragging the handle to expand/contract the sidebar, with the touch device' , async ( ) => {
392
398
const wrapper = createWrapper ( ) ;
393
399
const aside = wrapper . findComponent ( '.aside' ) ;
394
400
// assert dragging
395
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' , { type : 'touchstart' } ) ;
401
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' ) ;
396
402
document . dispatchEvent ( createEvent ( eventsMap . touch . move , {
397
403
touches : [ {
398
404
clientX : 500 ,
399
405
} ] ,
400
406
} ) ) ;
407
+ await wrapper . vm . $nextTick ( ) ;
401
408
// assert class
402
409
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
403
410
assertWidth ( wrapper , 400 ) ; // offset is 100, so we remove it from the clientX
@@ -410,6 +417,7 @@ describe('AdjustableSidebarWidth', () => {
410
417
assertWidth ( wrapper , maxWidth ) ;
411
418
// assert drop
412
419
document . dispatchEvent ( createEvent ( eventsMap . touch . end ) ) ;
420
+ await wrapper . vm . $nextTick ( ) ;
413
421
// assert emit event
414
422
expect ( wrapper . emitted ( 'width-change' ) ) . toHaveLength ( 2 ) ;
415
423
expect ( wrapper . emitted ( 'width-change' ) [ 1 ] ) . toEqual ( [ maxWidth ] ) ;
@@ -428,42 +436,45 @@ describe('AdjustableSidebarWidth', () => {
428
436
assertWidth ( wrapper , maxWidth ) ;
429
437
} ) ;
430
438
431
- it ( 'prevents dragging outside of the window' , ( ) => {
439
+ it ( 'prevents dragging outside of the window' , async ( ) => {
432
440
window . innerWidth = 1000 ;
433
441
const wrapper = createWrapper ( ) ;
434
442
const aside = wrapper . findComponent ( '.aside' ) ;
435
443
// assert dragging
436
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' , { type : 'mousedown' } ) ;
444
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' ) ;
437
445
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
438
446
clientX : window . innerWidth + 500 ,
439
447
} ) ) ;
448
+ await wrapper . vm . $nextTick ( ) ;
440
449
// assert class
441
450
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
442
451
assertWidth ( wrapper , maxWidth ) ; // wrapper is no wider than the max width
443
452
} ) ;
444
453
445
- it ( 'prevents dragging outside of the max container' , ( ) => {
454
+ it ( 'prevents dragging outside of the max container' , async ( ) => {
446
455
window . innerWidth = MAX_WIDTH + 200 ; // very wide screen
447
456
const wrapper = createWrapper ( ) ;
448
457
const aside = wrapper . findComponent ( '.aside' ) ;
449
458
// assert dragging
450
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' , { type : 'mousedown' } ) ;
459
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' ) ;
451
460
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
452
461
clientX : window . innerWidth + 500 ,
453
462
} ) ) ;
463
+ await wrapper . vm . $nextTick ( ) ;
454
464
// assert class
455
465
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
456
466
assertWidth ( wrapper , 608 ) ; // wrapper is no wider than 40% of the widest possible, which is 1920
457
467
} ) ;
458
468
459
- it ( 'prevents dragging below the `minWidth`' , ( ) => {
469
+ it ( 'prevents dragging below the `minWidth`' , async ( ) => {
460
470
const wrapper = createWrapper ( ) ;
461
471
const aside = wrapper . findComponent ( '.aside' ) ;
462
472
// assert dragging
463
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' , { type : 'mousedown' } ) ;
473
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' ) ;
464
474
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
465
475
clientX : 100 ,
466
476
} ) ) ;
477
+ await wrapper . vm . $nextTick ( ) ;
467
478
// assert class
468
479
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
469
480
assertWidth ( wrapper , 300 ) ; // wrapper is minimum 20% of the screen (1000px)
@@ -474,11 +485,12 @@ describe('AdjustableSidebarWidth', () => {
474
485
const aside = wrapper . findComponent ( '.aside' ) ;
475
486
// assert dragging
476
487
expect ( wrapper . emitted ( 'update:hiddenOnLarge' ) ) . toBeFalsy ( ) ;
477
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' , { type : 'mousedown' } ) ;
488
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'mousedown' ) ;
478
489
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
479
490
// minimum is 200, so 100px wide is the forceClose cutoff point, so we drag 50px beyond it
480
491
clientX : 150 ,
481
492
} ) ) ;
493
+ await wrapper . vm . $nextTick ( ) ;
482
494
// assert class
483
495
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
484
496
assertWidth ( wrapper , 300 ) ; // wrapper is minimum 30% of the screen (1000px)
@@ -491,6 +503,7 @@ describe('AdjustableSidebarWidth', () => {
491
503
document . dispatchEvent ( createEvent ( eventsMap . mouse . move , {
492
504
clientX : 350 ,
493
505
} ) ) ;
506
+ await wrapper . vm . $nextTick ( ) ;
494
507
assertWidth ( wrapper , 300 ) ;
495
508
expect ( wrapper . emitted ( 'update:hiddenOnLarge' ) ) . toEqual ( [ [ true ] , [ false ] ] ) ;
496
509
expect ( aside . classes ( ) ) . toContain ( 'is-opening-on-large' ) ;
@@ -512,17 +525,18 @@ describe('AdjustableSidebarWidth', () => {
512
525
expect ( wrapper . vm . asideStyles ) . toHaveProperty ( '--top-offset' , '22px' ) ;
513
526
} ) ;
514
527
515
- it ( 'accounts for zoomed in devices' , ( ) => {
528
+ it ( 'accounts for zoomed in devices' , async ( ) => {
516
529
window . scrollX = 55 ;
517
530
const wrapper = createWrapper ( ) ;
518
531
const aside = wrapper . findComponent ( '.aside' ) ;
519
532
// assert dragging
520
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' , { type : 'touchstart' } ) ;
533
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' ) ;
521
534
document . dispatchEvent ( createEvent ( eventsMap . touch . move , {
522
535
touches : [ {
523
536
clientX : 300 ,
524
537
} ] ,
525
538
} ) ) ;
539
+ await wrapper . vm . $nextTick ( ) ;
526
540
// assert class
527
541
expect ( aside . classes ( ) ) . toContain ( 'dragging' ) ;
528
542
// offset is 100, so we remove it from the clientX, but we add the scrollX.
@@ -533,6 +547,7 @@ describe('AdjustableSidebarWidth', () => {
533
547
clientX : window . innerWidth + 150 ,
534
548
} ] ,
535
549
} ) ) ;
550
+ await wrapper . vm . $nextTick ( ) ;
536
551
assertWidth ( wrapper , maxWidth ) ;
537
552
} ) ;
538
553
@@ -544,11 +559,14 @@ describe('AdjustableSidebarWidth', () => {
544
559
const aside = wrapper . findComponent ( '.aside' ) ;
545
560
expect ( aside . classes ( ) ) . not . toContain ( 'sidebar-transitioning' ) ;
546
561
aside . trigger ( 'transitionstart' , { propertyName : 'width' } ) ;
562
+ await wrapper . vm . $nextTick ( ) ;
547
563
expect ( aside . classes ( ) ) . toContain ( 'sidebar-transitioning' ) ;
548
564
aside . trigger ( 'transitionend' , { propertyName : 'width' } ) ;
565
+ await wrapper . vm . $nextTick ( ) ;
549
566
expect ( aside . classes ( ) ) . not . toContain ( 'sidebar-transitioning' ) ;
550
567
// assert it stops transitioning after time
551
568
aside . trigger ( 'transitionstart' , { propertyName : 'width' } ) ;
569
+ await wrapper . vm . $nextTick ( ) ;
552
570
expect ( aside . classes ( ) ) . toContain ( 'sidebar-transitioning' ) ;
553
571
await flushPromises ( ) ;
554
572
expect ( aside . classes ( ) ) . not . toContain ( 'sidebar-transitioning' ) ;
@@ -596,12 +614,13 @@ describe('AdjustableSidebarWidth', () => {
596
614
const wrapper = createWrapper ( ) ;
597
615
setContentWidth ( wrapper , 99 ) ;
598
616
expect ( store . state . contentWidth ) . toBe ( 0 ) ;
599
- wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' , { type : 'touchstart' } ) ;
617
+ wrapper . findComponent ( '.resize-handle' ) . trigger ( 'touchstart' ) ;
600
618
document . dispatchEvent ( createEvent ( eventsMap . touch . move , {
601
619
touches : [ {
602
620
clientX : 300 ,
603
621
} ] ,
604
622
} ) ) ;
623
+ await wrapper . vm . $nextTick ( ) ;
605
624
await flushPromises ( ) ;
606
625
expect ( store . state . contentWidth ) . toBe ( 99 ) ;
607
626
} ) ;
0 commit comments