Я хочу настроить некоторые сквозные тесты для моего приложения Angular, которое требует использования библиотеки MSAL для аутентификации в некоторых нисходящих сервисах. Когда я пытаюсь запустить свои тесты e2e локально, библиотека MSAL заставляет меня проходить аутентификацию с именем пользователя / паролем.
Это проблема, потому что в нашем тестировании CI / CD e2e не должно быть вмешательства человека; поэтому я ищу способ обойти аутентификацию MSAL или настроить учетную запись службы для входа в систему. К сожалению, документации по MSAL для Angular не так много (особенно когда речь идет о тестировании e2e), но это кажется общей проблемой, с которой могут столкнуться другие.
Я пытался отключить MsalModule из нашего файла app.module.ts, но мне все равно предлагается войти в систему, когда я пытаюсь запустить приложение. Я также видел несколько статей, пытающихся программно войти в систему, но у нас это не работает, поскольку технически MSAL не является угловым компонентом, к которому мы можем прикоснуться.
app.module.ts:
@NgModule({
...
imports: [
...
MsalModule.forRoot({
clientID: '<client_id>',
authority: <microsoft_authority_url>,
validateAuthority: true,
redirectUri: "http://localhost:4200/",
cacheLocation : "localStorage",
postLogoutRedirectUri: "http://localhost:4200/",
navigateToLoginRequestUrl: true,
popUp: true,
consentScopes: [ "user.read"],
unprotectedResources: ["https://www.microsoft.com/en-us/"],
protectedResourceMap: protectedResourceMap,
logger: loggerCallback,
correlationId: '1234',
level: LogLevel.Info,
piiLoggingEnabled: true
})
],
entryComponents: [SaveDialogComponent,
GenericDialog, MassChangeDialogComponent],
providers: [TitleCasePipe,
{provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true}],
bootstrap: [AppComponent]
})
export class AppModule { }
Ожидаемый результат: удаление модуля аутентификации MSAL должно позволить нашему приложению работать без необходимости входа в систему.
Фактический результат: приложение все еще запрашивает вход в систему или неправильно отображает.