import { AppService } from './app.service' ; import { TestBed } from '@angular/core/testing' ; import { AuthenticationService , AppConfigService , AlfrescoApiService , AlfrescoApiServiceMock } from '@alfresco/adf-core' ; import { Subject } from 'rxjs' ; import { HttpClientModule } from '@angular/common/http' ; import { SearchQueryBuilderService } from '@alfresco/adf-content-services' ; describe ( 'AppService' , ( ) => { let service ; let auth ; let appConfig ; let searchQueryBuilderService ; beforeEach ( ( ) => { TestBed . configureTestingModule ( { imports : [ HttpClientModule ] , providers : [ { provide : AlfrescoApiService , useClass : AlfrescoApiServiceMock } , SearchQueryBuilderService , { provide : AuthenticationService , useValue : { onLogin : new Subject < any > ( ) , onLogout : new Subject < any > ( ) , isLoggedIn : ( ) => false } } ] } ) ; auth = TestBed . inject ( AuthenticationService ) ; appConfig = TestBed . inject ( AppConfigService ) ; searchQueryBuilderService = TestBed . inject ( SearchQueryBuilderService ) ; service = new AppService ( auth , appConfig , searchQueryBuilderService ) ; } ) ; it ( 'should be ready if [withCredentials] mode is used' , ( done ) => { appConfig . config = { auth : { withCredentials : true } } ; const instance = new AppService ( auth , appConfig , searchQueryBuilderService ) ; expect ( instance . withCredentials ) . toBeTruthy ( ) ; instance . ready$ . subscribe ( ( ) => { done ( ) ; } ) ; } ) ; it ( 'should be ready after login' , async ( ) => { let isReady = false ; service . ready$ . subscribe ( ( value ) => { isReady = value ; } ) ; auth . onLogin . next ( ) ; await expect ( isReady ) . toEqual ( true ) ; } ) ; } ) ;