2016-08-11 8 views
1

次のテストでは、router.navigationプロパティの長さはゼロです。私たちのルートNavModelにアクセスするにはどうすればいいですか?ConfigureRouter経由でルートの追加をテストします。 NavModelはどのように見えますか?

import { Container } from "aurelia-framework"; 
import { RouterConfiguration, Router } from "aurelia-router"; 

describe("the RouterConfiguration", function() { 

    let container: Container = new Container(); 
    let routerConfiguration: RouterConfiguration = container.get(RouterConfiguration); 
    let router: Router = container.get(Router); 

    it("adds a route with a NavModel", function (done) { 

     routerConfiguration.mapRoute({ 
      moduleId: "test", 
      name: "test", 
      navigationStrategy: (instruction) => { 
       instruction.config.moduleId = "something"; 
      }, 
      route: "test", 
     }); 

     let configureRouter: Promise<void> = router.configure(routerConfiguration); 

     configureRouter.then(function() { 

      router.baseUrl = "foobar"; 
      router.refreshNavigation(); 

      expect(router.isConfigured).toBe(true); 
      expect(router.routes.length).toBe(1); 
      expect(router.navigation.length).toBe(1); // fails 
      expect(router.hasRoute("test")).toBe(true); 
      done(); 
     }); 
    }); 
}); 

ライティングコンソールディスプレイこれにrouter

Router 
{ 
    parent: null, 
    options: Object{}, 
    container: undefined, 
    history: undefined, 
    viewPorts: Object{}, 
    routes: [ 
     Object 
     { 
      moduleId: ..., 
      name: ..., 
      navigationStrategy: ..., 
      route: ..., 
      settings: ..., 
      navModel: ... 
     } 
    ], 
    baseUrl: '', 
    isConfigured: true, 
    isNavigating: false, 
    navigation: [], 
    currentInstruction: null, 
    _fallbackOrder: 100, 
    _recognizer: RouteRecognizer 
    { 
     rootState: State {charSpec: ..., nextStates: ...}, 
     names: Object{test: ...} 
    }, 
    _childRecognizer: RouteRecognizer 
    { 
     rootState: State{charSpec: ..., nextStates: ...}, 
     names: Object{test: ...} 
    }, 
    _resolveConfiguredPromise: function (value) { ... }, 
    _configuredPromise: Promise 
    { 
     _bitField: 33554432, 
     _fulfillmentHandler0: undefined, 
     _rejectionHandler0: undefined, 
     _promise0: undefined, 
     _receiver0: undefined, 
     _trace: CapturedTrace 
     { 
      _parent: ..., 
      _promisesCreated: ..., 
      _length: ..., 
      _promiseCreated: ... 
     } 
    } 
} 

答えて

1

私はあなたがちょうどあなたがmapRouteにマッピングされているルートにnav: trueプロパティを追加する必要があると思います。

routerConfiguration.mapRoute({ 
    moduleId: "test", 
    name: "test", 
    navigationStrategy: (instruction) => { 
     instruction.config.moduleId = "something"; 
    }, 
    route: "test", 
    nav: true // I want the route to be included in the nav model... 
    }); 
関連する問題