|
|
@ -10,7 +10,7 @@ describe('AuthGuard', () => { |
|
|
let guard: AuthGuard; |
|
|
let guard: AuthGuard; |
|
|
const createService = createServiceFactory({ |
|
|
const createService = createServiceFactory({ |
|
|
service: AuthGuard, |
|
|
service: AuthGuard, |
|
|
mocks: [OAuthService], |
|
|
mocks: [OAuthService, Router], |
|
|
imports: [RouterModule.forRoot([{ path: '', component: RouterOutletComponent }])], |
|
|
imports: [RouterModule.forRoot([{ path: '', component: RouterOutletComponent }])], |
|
|
declarations: [RouterOutletComponent], |
|
|
declarations: [RouterOutletComponent], |
|
|
providers: [{ provide: APP_BASE_HREF, useValue: '/' }], |
|
|
providers: [{ provide: APP_BASE_HREF, useValue: '/' }], |
|
|
@ -26,10 +26,13 @@ describe('AuthGuard', () => { |
|
|
expect(guard.canActivate(null, null)).toBe(true); |
|
|
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 router = spectator.get(Router); |
|
|
const expectedUrlTree = router.createUrlTree(['/account/login'], { state: { redirectUrl: '/' } }); |
|
|
|
|
|
spectator.get(OAuthService).hasValidAccessToken.andReturn(false); |
|
|
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: '/' }, |
|
|
|
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|