diff --git a/src/app/auth/keycloak.service.spec.ts b/src/app/auth/keycloak.service.spec.ts index 098e158..fe920fb 100644 --- a/src/app/auth/keycloak.service.spec.ts +++ b/src/app/auth/keycloak.service.spec.ts @@ -1,39 +1,36 @@ -import { vi } from 'vitest'; import { TestBed } from '@angular/core/testing'; +import { vi } from 'vitest'; 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 | undefined, - authenticated: true as boolean | undefined, - onTokenExpired: undefined as (() => Promise | void) | undefined, -})); - -const MockKeycloak = vi.hoisted(() => vi.fn()); - -vi.mock('keycloak-js', () => ({ default: MockKeycloak })); - describe('KeycloakService', () => { let service: KeycloakService; + let mockKc: { + init: ReturnType; + login: ReturnType; + logout: ReturnType; + updateToken: ReturnType; + token: string | undefined; + tokenParsed: Record | undefined; + authenticated: boolean | undefined; + onTokenExpired: (() => Promise | void) | undefined; + }; beforeEach(() => { - MockKeycloak.mockImplementation(function () { return mockKc; }); - mockKc.init.mockResolvedValue(true); - mockKc.login.mockResolvedValue(undefined); - mockKc.logout.mockResolvedValue(undefined); - mockKc.updateToken.mockResolvedValue(true); - mockKc.token = 'mock-token'; - mockKc.tokenParsed = { preferred_username: 'testuser' }; - mockKc.authenticated = true; - mockKc.onTokenExpired = undefined; + mockKc = { + init: vi.fn().mockResolvedValue(true), + login: vi.fn().mockResolvedValue(undefined), + logout: vi.fn().mockResolvedValue(undefined), + updateToken: vi.fn().mockResolvedValue(true), + token: 'mock-token', + tokenParsed: { preferred_username: 'testuser' }, + authenticated: true, + onTokenExpired: undefined, + }; TestBed.resetTestingModule(); TestBed.configureTestingModule({}); service = TestBed.inject(KeycloakService); + (service as any).keycloak = mockKc; }); afterEach(() => vi.clearAllMocks());