update test
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import { vi } from 'vitest';
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
|
||||
import { authGuard } from './auth.guard';
|
||||
import { KeycloakService } from './keycloak.service';
|
||||
|
||||
describe('authGuard', () => {
|
||||
let mockKeycloak: { isLoggedIn: ReturnType<typeof vi.fn>; login: ReturnType<typeof vi.fn> };
|
||||
|
||||
beforeEach(() => {
|
||||
mockKeycloak = {
|
||||
isLoggedIn: vi.fn().mockReturnValue(true),
|
||||
login: vi.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
|
||||
TestBed.configureTestingModule({
|
||||
providers: [{ provide: KeycloakService, useValue: mockKeycloak }],
|
||||
});
|
||||
});
|
||||
|
||||
const runGuard = () =>
|
||||
TestBed.runInInjectionContext(() =>
|
||||
authGuard({} as ActivatedRouteSnapshot, {} as RouterStateSnapshot),
|
||||
);
|
||||
|
||||
it('returns true when the user is logged in', () => {
|
||||
mockKeycloak.isLoggedIn.mockReturnValue(true);
|
||||
expect(runGuard()).toBe(true);
|
||||
});
|
||||
|
||||
it('returns false when the user is not logged in', () => {
|
||||
mockKeycloak.isLoggedIn.mockReturnValue(false);
|
||||
expect(runGuard()).toBe(false);
|
||||
});
|
||||
|
||||
it('calls login() when the user is not logged in', () => {
|
||||
mockKeycloak.isLoggedIn.mockReturnValue(false);
|
||||
runGuard();
|
||||
expect(mockKeycloak.login).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('does not call login() when the user is already logged in', () => {
|
||||
mockKeycloak.isLoggedIn.mockReturnValue(true);
|
||||
runGuard();
|
||||
expect(mockKeycloak.login).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user