angular-cn/modules/angular2/test/router/integration
Brian Ford cf7292fcb1 refactor(router): improve recognition and generation pipeline
This is a big change. @matsko also deserves much of the credit for the implementation.

Previously, `ComponentInstruction`s held all the state for async components.
Now, we introduce several subclasses for `Instruction` to describe each type of navigation.

BREAKING CHANGE:

Redirects now use the Link DSL syntax. Before:

```
@RouteConfig([
  { path: '/foo', redirectTo: '/bar' },
  { path: '/bar', component: BarCmp }
])
```

After:

```
@RouteConfig([
  { path: '/foo', redirectTo: ['Bar'] },
  { path: '/bar', component: BarCmp, name: 'Bar' }
])
```

BREAKING CHANGE:

This also introduces `useAsDefault` in the RouteConfig, which makes cases like lazy-loading
and encapsulating large routes with sub-routes easier.

Previously, you could use `redirectTo` like this to expand a URL like `/tab` to `/tab/posts`:

@RouteConfig([
  { path: '/tab', redirectTo: '/tab/users' }
  { path: '/tab', component: TabsCmp, name: 'Tab' }
])
AppCmp { ... }

Now the recommended way to handle this is case is to use `useAsDefault` like so:

```
@RouteConfig([
  { path: '/tab', component: TabsCmp, name: 'Tab' }
])
AppCmp { ... }

@RouteConfig([
  { path: '/posts', component: PostsCmp, useAsDefault: true, name: 'Posts' },
  { path: '/users', component: UsersCmp, name: 'Users' }
])
TabsCmp { ... }
```

In the above example, you can write just `['/Tab']` and the route `Users` is automatically selected as a child route.

Closes #4170
Closes #4490
Closes #4694
Closes #5200

Closes #5352
2015-11-20 23:18:43 +00:00
..
impl refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
README.md refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
async_route_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
auxiliary_route_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
bootstrap_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
lifecycle_hook_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
navigation_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
redirect_route_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
router_link_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
sync_route_spec.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00
util.ts refactor(router): improve recognition and generation pipeline 2015-11-20 23:18:43 +00:00

README.md

Router integration tests

These tests only mock out Location, and otherwise use all the real parts of routing to ensure that various routing scenarios work as expected.

The Component Router in Angular 2 exposes only a handful of different options, but because they can be combined and nested in so many ways, it's difficult to rigorously test all the cases.

The address this problem, we introduce describeRouter, describeWith, and describeWithout.