@@ -1,39 +1,36 @@
|
|||||||
import { vi } from 'vitest';
|
|
||||||
import { TestBed } from '@angular/core/testing';
|
import { TestBed } from '@angular/core/testing';
|
||||||
|
import { vi } from 'vitest';
|
||||||
import { KeycloakService } from './keycloak.service';
|
import { KeycloakService } from './keycloak.service';
|
||||||
|
|
||||||
const mockKc = vi.hoisted(() => ({
|
|
||||||
init: vi.fn(),
|
|
||||||
login: vi.fn(),
|
|
||||||
logout: vi.fn(),
|
|
||||||
updateToken: vi.fn(),
|
|
||||||
token: 'mock-token' as string | undefined,
|
|
||||||
tokenParsed: { preferred_username: 'testuser' } as Record<string, string> | undefined,
|
|
||||||
authenticated: true as boolean | undefined,
|
|
||||||
onTokenExpired: undefined as (() => Promise<void> | void) | undefined,
|
|
||||||
}));
|
|
||||||
|
|
||||||
const MockKeycloak = vi.hoisted(() => vi.fn());
|
|
||||||
|
|
||||||
vi.mock('keycloak-js', () => ({ default: MockKeycloak }));
|
|
||||||
|
|
||||||
describe('KeycloakService', () => {
|
describe('KeycloakService', () => {
|
||||||
let service: KeycloakService;
|
let service: KeycloakService;
|
||||||
|
let mockKc: {
|
||||||
|
init: ReturnType<typeof vi.fn>;
|
||||||
|
login: ReturnType<typeof vi.fn>;
|
||||||
|
logout: ReturnType<typeof vi.fn>;
|
||||||
|
updateToken: ReturnType<typeof vi.fn>;
|
||||||
|
token: string | undefined;
|
||||||
|
tokenParsed: Record<string, string> | undefined;
|
||||||
|
authenticated: boolean | undefined;
|
||||||
|
onTokenExpired: (() => Promise<void> | void) | undefined;
|
||||||
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
MockKeycloak.mockImplementation(function () { return mockKc; });
|
mockKc = {
|
||||||
mockKc.init.mockResolvedValue(true);
|
init: vi.fn().mockResolvedValue(true),
|
||||||
mockKc.login.mockResolvedValue(undefined);
|
login: vi.fn().mockResolvedValue(undefined),
|
||||||
mockKc.logout.mockResolvedValue(undefined);
|
logout: vi.fn().mockResolvedValue(undefined),
|
||||||
mockKc.updateToken.mockResolvedValue(true);
|
updateToken: vi.fn().mockResolvedValue(true),
|
||||||
mockKc.token = 'mock-token';
|
token: 'mock-token',
|
||||||
mockKc.tokenParsed = { preferred_username: 'testuser' };
|
tokenParsed: { preferred_username: 'testuser' },
|
||||||
mockKc.authenticated = true;
|
authenticated: true,
|
||||||
mockKc.onTokenExpired = undefined;
|
onTokenExpired: undefined,
|
||||||
|
};
|
||||||
|
|
||||||
TestBed.resetTestingModule();
|
TestBed.resetTestingModule();
|
||||||
TestBed.configureTestingModule({});
|
TestBed.configureTestingModule({});
|
||||||
service = TestBed.inject(KeycloakService);
|
service = TestBed.inject(KeycloakService);
|
||||||
|
(service as any).keycloak = mockKc;
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => vi.clearAllMocks());
|
afterEach(() => vi.clearAllMocks());
|
||||||
|
|||||||
Reference in New Issue
Block a user