test(router): add test verifying guards re-run when parent path segments change (#27440)
Related to #26861 PR Close #27440
This commit is contained in:
parent
862697d4bd
commit
0d4149c736
|
@ -2263,6 +2263,18 @@ describe('Integration', () => {
|
||||||
component: RouteCmp,
|
component: RouteCmp,
|
||||||
canActivate: ['guard'],
|
canActivate: ['guard'],
|
||||||
resolve: {data: 'resolver'}
|
resolve: {data: 'resolver'}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'd/:param',
|
||||||
|
component: WrapperCmp, runGuardsAndResolvers,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'e/:param',
|
||||||
|
component: SimpleCmp,
|
||||||
|
canActivate: ['guard'],
|
||||||
|
resolve: {data: 'resolver'},
|
||||||
|
},
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -2411,6 +2423,31 @@ describe('Integration', () => {
|
||||||
advance(fixture);
|
advance(fixture);
|
||||||
expect(guardRunCount).toEqual(3);
|
expect(guardRunCount).toEqual(3);
|
||||||
})));
|
})));
|
||||||
|
|
||||||
|
it('should rerun when a parent segment changes',
|
||||||
|
fakeAsync(inject([Router], (router: Router) => {
|
||||||
|
const fixture = configureRouter(router, 'pathParamsChange');
|
||||||
|
|
||||||
|
const cmp: RouteCmp = fixture.debugElement.children[1].componentInstance;
|
||||||
|
|
||||||
|
// Land on an inital page
|
||||||
|
router.navigateByUrl('/d/1;dd=11/e/2;dd=22');
|
||||||
|
advance(fixture);
|
||||||
|
|
||||||
|
expect(guardRunCount).toEqual(2);
|
||||||
|
|
||||||
|
// Changes cause re-run on the config with the guard
|
||||||
|
router.navigateByUrl('/d/1;dd=11/e/3;ee=22');
|
||||||
|
advance(fixture);
|
||||||
|
|
||||||
|
expect(guardRunCount).toEqual(3);
|
||||||
|
|
||||||
|
// Changes to the parent also cause re-run
|
||||||
|
router.navigateByUrl('/d/2;dd=11/e/3;ee=22');
|
||||||
|
advance(fixture);
|
||||||
|
|
||||||
|
expect(guardRunCount).toEqual(4);
|
||||||
|
})));
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('should wait for parent to complete', () => {
|
describe('should wait for parent to complete', () => {
|
||||||
|
|
Loading…
Reference in New Issue