@@ -7,13 +7,12 @@ import { omit, pick, forEach, copy } from "../../src/core";
77
88import Spy = jasmine . Spy ;
99import { services } from "../../src/common/coreservices" ;
10- import { resolvablesBuilder } from "../../src/state/stateBuilder" ;
1110import { tree2Array } from "../testUtils.ts" ;
1211import { UIRouter } from "../../src/router" ;
1312
1413///////////////////////////////////////////////
1514
16- let router , states , statesMap : { [ key :string ] : State } = { } ;
15+ let router : UIRouter , states , statesMap : { [ key :string ] : State } = { } ;
1716let vals , counts , expectCounts ;
1817let asyncCount ;
1918
@@ -76,7 +75,7 @@ beforeEach(function () {
7675
7776 tree2Array ( getStates ( ) , false ) . forEach ( state => router . stateRegistry . register ( state ) ) ;
7877 statesMap = router . stateRegistry . get ( )
79- . reduce ( ( acc , state ) => ( ( acc [ state . name ] = state . $$state ( ) ) , acc ) , { } ) ;
78+ . reduce ( ( acc , state ) => ( acc [ state . name ] = state . $$state ( ) , acc ) , statesMap ) ;
8079} ) ;
8180
8281function makePath ( names : string [ ] ) : PathNode [ ] {
@@ -347,5 +346,25 @@ describe('Resolvables system:', function () {
347346 } ) . then ( done ) ;
348347 } ) ;
349348 } ) ;
349+
350+ // Test for #2641
351+ it ( "should not re-resolve data, when redirecting to a child" , ( done ) => {
352+ let $state = router . stateService ;
353+ let $transitions = router . transitionService ;
354+ $transitions . onStart ( { to : "J" } , ( $transition$ ) => {
355+ var ctx = new ResolveContext ( $transition$ . treeChanges ( ) . to ) ;
356+ return invokeLater ( function ( _J ) { } , ctx ) . then ( function ( ) {
357+ expect ( counts . _J ) . toEqualData ( 1 ) ;
358+ return $state . target ( "K" ) ;
359+ } ) ;
360+ } ) ;
361+
362+ $state . go ( "J" ) . then ( ( ) => {
363+ expect ( $state . current . name ) . toBe ( "K" ) ;
364+ expect ( counts . _J ) . toEqualData ( 1 ) ;
365+ done ( ) ;
366+ } ) ;
367+ } ) ;
350368} ) ;
351369
370+
0 commit comments