@@ -36,7 +36,10 @@ describe('UI-Router v0.2.x $state events', function () {
36
36
C = { } ,
37
37
D = { params : { x : { } , y : { } } } ,
38
38
DD = { parent : D , params : { z : { } } } ,
39
- E = { params : { i : { } } } ;
39
+ E = { params : { i : { } } } ,
40
+ F = { resolve : {
41
+ delay : function ( $timeout ) { return $timeout ( 50 ) ; }
42
+ } } ;
40
43
41
44
beforeEach ( module ( function ( $stateProvider , $provide ) {
42
45
angular . forEach ( [ A , B , C , D , DD ] , function ( state ) {
@@ -51,7 +54,8 @@ describe('UI-Router v0.2.x $state events', function () {
51
54
. state ( 'C' , C )
52
55
. state ( 'D' , D )
53
56
. state ( 'DD' , DD )
54
- . state ( 'E' , E ) ;
57
+ . state ( 'E' , E )
58
+ . state ( 'F' , F ) ;
55
59
} ) ) ;
56
60
57
61
beforeEach ( inject ( function ( $rootScope , _$injector_ ) {
@@ -299,31 +303,38 @@ describe('UI-Router v0.2.x $state events', function () {
299
303
} ) ) ;
300
304
301
305
302
- it ( 'aborts pending transitions even when going back to the current state' , inject ( function ( $state , $q ) {
306
+ it ( 'aborts pending transitions even when going back to the current state' , inject ( function ( $state , $q , $timeout ) {
303
307
initStateTo ( A ) ;
304
308
logEvents = true ;
305
309
$state . defaultErrorHandler ( function ( ) { } ) ;
306
310
307
- var superseded = $state . transitionTo ( B , { } ) ;
311
+ var superseded = $state . transitionTo ( F , { } ) ;
312
+ $q . flush ( ) ;
313
+ expect ( $state . current ) . toBe ( A ) ;
314
+
308
315
$state . transitionTo ( A , { } ) ;
309
316
$q . flush ( ) ;
317
+ $timeout . flush ( ) ;
310
318
expect ( $state . current ) . toBe ( A ) ;
311
319
expect ( resolvedError ( superseded ) ) . toBeTruthy ( ) ;
312
- expect ( log ) . toBe ( '$stateChangeStart(B ,A);' ) ;
320
+ expect ( log ) . toBe ( '$stateChangeStart(F ,A);' ) ;
313
321
} ) ) ;
314
322
315
- it ( 'aborts pending transitions (last call wins)' , inject ( function ( $state , $q ) {
323
+ it ( 'aborts pending transitions (last call wins)' , inject ( function ( $state , $q , $timeout ) {
316
324
initStateTo ( A ) ;
317
325
logEvents = true ;
318
326
$state . defaultErrorHandler ( function ( ) { } ) ;
319
327
320
- var superseded = $state . transitionTo ( B , { } ) ;
328
+ var superseded = $state . transitionTo ( F , { } ) ;
329
+ $q . flush ( ) ;
330
+
321
331
$state . transitionTo ( C , { } ) ;
322
332
$q . flush ( ) ;
333
+ $timeout . flush ( ) ;
323
334
expect ( $state . current ) . toBe ( C ) ;
324
335
expect ( resolvedError ( superseded ) ) . toBeTruthy ( ) ;
325
336
expect ( log ) . toBe (
326
- '$stateChangeStart(B ,A);' +
337
+ '$stateChangeStart(F ,A);' +
327
338
'$stateChangeStart(C,A);' +
328
339
'$stateChangeSuccess(C,A);' ) ;
329
340
} ) ) ;
0 commit comments