@@ -398,8 +398,8 @@ describe('Resolvables system:', function () {
398
398
} ) ;
399
399
} ) ;
400
400
401
- describe ( 'NOWAIT Resolve Policy' , ( ) => {
402
- it ( 'should allow a transition to complete before the resolve is settled' , async ( done ) => {
401
+ describe ( 'Resolve Policy' , ( ) => {
402
+ it ( 'NOWAIT should allow a transition to complete before the resolve is settled' , async ( done ) => {
403
403
let resolve , resolvePromise = new Promise ( _resolve => { resolve = _resolve ; } ) ;
404
404
405
405
$registry . register ( {
@@ -461,6 +461,54 @@ describe('Resolvables system:', function () {
461
461
462
462
$state . go ( 'nowait' ) ;
463
463
} ) ;
464
+
465
+ fit ( 'NOWAIT should return a promise from .result()' , async ( done ) => {
466
+ let promiseResolveFn , resolvePromise = new Promise ( resolve => { promiseResolveFn = resolve ; } ) ;
467
+
468
+ $registry . register ( {
469
+ name : 'nowait' ,
470
+ resolve : [
471
+ { token : 'nowait' , policy : { async : 'NOWAIT' } , resolveFn : ( ) => resolvePromise } ,
472
+ { token : 'wait' , policy : { async : 'WAIT' } , resolveFn : ( ) => new Promise ( resolve => resolve ( 'should wait' ) ) } ,
473
+ ] ,
474
+ } ) ;
475
+
476
+ $transitions . onSuccess ( { } , trans => {
477
+ let resolvable = tail ( trans . treeChanges ( 'to' ) ) . resolvables [ 0 ] ;
478
+ let result = resolvable . result ( ) ;
479
+ expect ( result instanceof Promise ) . toBeTruthy ( ) ;
480
+ result . then ( val => {
481
+ expect ( val ) . toBe ( 'foobar' ) ;
482
+ done ( ) ;
483
+ } ) ;
484
+
485
+ promiseResolveFn ( 'foobar' ) ;
486
+ } ) ;
487
+
488
+ $state . go ( 'nowait' ) ;
489
+ } ) ;
490
+
491
+ fit ( 'WAIT should return the resolved value from .result()' , async ( done ) => {
492
+ let promiseResolveFn , resolvePromise = new Promise ( resolve => { promiseResolveFn = resolve ; } ) ;
493
+
494
+ $registry . register ( {
495
+ name : 'nowait' ,
496
+ resolve : [
497
+ { token : 'nowait' , policy : { async : 'NOWAIT' } , resolveFn : ( ) => resolvePromise } ,
498
+ { token : 'wait' , policy : { async : 'WAIT' } , resolveFn : ( ) => new Promise ( resolve => resolve ( 'should wait' ) ) } ,
499
+ ] ,
500
+ } ) ;
501
+
502
+ $transitions . onSuccess ( { } , trans => {
503
+ let resolvable = tail ( trans . treeChanges ( 'to' ) ) . resolvables [ 1 ] ;
504
+ let result = resolvable . result ( ) ;
505
+ expect ( result ) . toBe ( 'should wait' ) ;
506
+ done ( ) ;
507
+ } ) ;
508
+
509
+ $state . go ( 'nowait' ) ;
510
+ } ) ;
511
+
464
512
} ) ;
465
513
} ) ;
466
514
0 commit comments