I have imported APP_INITIALIZER in my app.module.ts file and calling a initializer function.
How to write unit test case for this initializer method using jasmine/karma?
Code:
initializer.ts
import { CookieService } from 'ngx-cookie-service';
import { KeycloakOptions, KeycloakConfig } from 'keycloak-angular';
import { EnlivenKeycloakAuthService } from './services/enliven-keycloak-auth.service';
export function initializer(keycloakService: EnlivenKeycloakAuthService, cookieService: CookieService): () => Promise<any> {
cookieService.set('test','test');
const config: KeycloakConfig = {
url: serverUrl,
realm: realmName,
clientId: clientId,
credentials: {
secret: secret
}
};
const options: KeycloakOptions = {
config: config,
initOptions: {
onLoad: 'login-required',
checkLoginIframe: false
},
enableBearerInterceptor: true,
bearerExcludedUrls: ['/assets']
};
keycloakService.setIsClientSecretKeyFetech(true);
return (): Promise<any> => keycloakService.init(options);
}
app.module.ts
{
provide: APP_INITIALIZER,
useFactory: initializer,
deps: [ EnlivenKeycloakAuthService, CookieService],
multi: true
}