@@ -11,10 +11,10 @@ import {
1111 beforeEachBindings ,
1212 SpyObject
1313} from 'angular2/test_lib' ;
14- import { IMPLEMENTS } from 'angular2/src/facade/lang' ;
15-
14+ import { IMPLEMENTS , Type } from 'angular2/src/facade/lang' ;
1615import { Promise , PromiseWrapper } from 'angular2/src/facade/async' ;
1716import { ListWrapper } from 'angular2/src/facade/collection' ;
17+
1818import { Router , RootRouter } from 'angular2/src/router/router' ;
1919import { Pipeline } from 'angular2/src/router/pipeline' ;
2020import { RouterOutlet } from 'angular2/src/router/router_outlet' ;
@@ -23,7 +23,7 @@ import {Location} from 'angular2/src/router/location';
2323import { stringifyInstruction } from 'angular2/src/router/instruction' ;
2424
2525import { RouteRegistry } from 'angular2/src/router/route_registry' ;
26- import { RouteConfig , Route } from 'angular2/src/router/route_config_decorator' ;
26+ import { RouteConfig , AsyncRoute , Route } from 'angular2/src/router/route_config_decorator' ;
2727import { DirectiveResolver } from 'angular2/src/core/compiler/directive_resolver' ;
2828
2929import { bind } from 'angular2/di' ;
@@ -133,6 +133,21 @@ export function main() {
133133 expect ( stringifyInstruction ( instruction ) ) . toEqual ( 'first/second' ) ;
134134 } ) ;
135135
136+ it ( 'should generate an instruction with terminal async routes' ,
137+ inject ( [ AsyncTestCompleter ] , ( async ) => {
138+ var outlet = makeDummyOutlet ( ) ;
139+
140+ router . registerOutlet ( outlet ) ;
141+ router . config ( [ new AsyncRoute ( { path : '/first' , loader : loader , as : 'FirstCmp' } ) ] ) ;
142+
143+ var instruction = router . generate ( [ '/FirstCmp' ] ) ;
144+ router . navigateInstruction ( instruction )
145+ . then ( ( _ ) => {
146+ expect ( outlet . spy ( 'commit' ) ) . toHaveBeenCalled ( ) ;
147+ async . done ( ) ;
148+ } ) ;
149+ } ) ) ;
150+
136151 describe ( 'query string params' , ( ) => {
137152 it ( 'should use query string params for the root route' , ( ) => {
138153 router . config (
@@ -178,6 +193,10 @@ export function main() {
178193 } ) ;
179194}
180195
196+ function loader ( ) : Promise < Type > {
197+ return PromiseWrapper . resolve ( DummyComponent ) ;
198+ }
199+
181200@proxy
182201@IMPLEMENTS ( RouterOutlet )
183202class DummyOutlet extends SpyObject {
0 commit comments