(
guards: CanActivateFn[] | CanActivateChildFn[],
)
| 2469 | |
| 2470 | it('can run functional guards serially', async () => { |
| 2471 | function runSerially( |
| 2472 | guards: CanActivateFn[] | CanActivateChildFn[], |
| 2473 | ): CanActivateFn | CanActivateChildFn { |
| 2474 | return (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { |
| 2475 | const injector = inject(EnvironmentInjector); |
| 2476 | const observables = guards.map((guard) => { |
| 2477 | const guardResult = injector.runInContext(() => guard(route, state)); |
| 2478 | return wrapIntoObservable(guardResult).pipe(first()); |
| 2479 | }); |
| 2480 | return concat(...observables).pipe( |
| 2481 | takeWhile((v) => v === true), |
| 2482 | last(), |
| 2483 | ); |
| 2484 | }; |
| 2485 | } |
| 2486 | |
| 2487 | const guardDone: string[] = []; |
| 2488 |
no test coverage detected