diff --git a/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts b/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts index 1e9dc52bb3..e799eb6784 100644 --- a/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts +++ b/npm/ng-packs/packages/core/src/lib/guards/auth.guard.ts @@ -26,6 +26,7 @@ export class AuthGuard implements CanActivate { return hasValidAccessToken; } - return router.createUrlTree(['/account/login'], { state: { redirectUrl: state.url } }); + router.navigate(['/account/login'], { state: { redirectUrl: state.url } }); + return true; } } diff --git a/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts index 93339bcbcc..1e7f5bf585 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/auth.guard.spec.ts @@ -10,7 +10,7 @@ describe('AuthGuard', () => { let guard: AuthGuard; const createService = createServiceFactory({ service: AuthGuard, - mocks: [OAuthService], + mocks: [OAuthService, Router], imports: [RouterModule.forRoot([{ path: '', component: RouterOutletComponent }])], declarations: [RouterOutletComponent], providers: [{ provide: APP_BASE_HREF, useValue: '/' }], @@ -26,10 +26,13 @@ describe('AuthGuard', () => { expect(guard.canActivate(null, null)).toBe(true); }); - it('should return url tree when user not logged in', () => { + it('should return navigate to login page with redirectUrl state', () => { const router = spectator.get(Router); - const expectedUrlTree = router.createUrlTree(['/account/login'], { state: { redirectUrl: '/' } }); spectator.get(OAuthService).hasValidAccessToken.andReturn(false); - expect(guard.canActivate(null, { url: '/' } as any) as UrlTree).toEqual(expectedUrlTree); + + expect(guard.canActivate(null, { url: '/' } as any)).toBe(true); + expect(router.navigate).toHaveBeenCalledWith(['/account/login'], { + state: { redirectUrl: '/' }, + }); }); }); diff --git a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts index f1ae22f3ae..af2db977fe 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts @@ -90,7 +90,7 @@ export class ErrorHandler { .subscribe(err => { const body = snq(() => err.error.error, DEFAULT_ERROR_MESSAGES.defaultError.title); - if (err.headers.get('_AbpErrorFormat')) { + if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) { const confirmation$ = this.showError(null, null, body); if (err.status === 401) {