104938 Add flush to process polling tests

This commit is contained in:
Koen Pauwels
2023-08-25 11:17:36 +02:00
parent c4d57770c7
commit bd6648703c

View File

@@ -9,7 +9,7 @@
import { testFindAllDataImplementation } from '../base/find-all-data.spec'; import { testFindAllDataImplementation } from '../base/find-all-data.spec';
import { ProcessDataService } from './process-data.service'; import { ProcessDataService } from './process-data.service';
import { testDeleteDataImplementation } from '../base/delete-data.spec'; import { testDeleteDataImplementation } from '../base/delete-data.spec';
import { cold } from 'jasmine-marbles'; import { cold, getTestScheduler } from 'jasmine-marbles';
import { waitForAsync, TestBed } from '@angular/core/testing'; import { waitForAsync, TestBed } from '@angular/core/testing';
import { RequestService } from '../request.service'; import { RequestService } from '../request.service';
import { RemoteData } from '../remote-data'; import { RemoteData } from '../remote-data';
@@ -23,6 +23,7 @@ import { HALEndpointService } from '../../shared/hal-endpoint.service';
import { DSOChangeAnalyzer } from '../dso-change-analyzer.service'; import { DSOChangeAnalyzer } from '../dso-change-analyzer.service';
import { BitstreamFormatDataService } from '../bitstream-format-data.service'; import { BitstreamFormatDataService } from '../bitstream-format-data.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service'; import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { TestScheduler } from 'rxjs/testing';
describe('ProcessDataService', () => { describe('ProcessDataService', () => {
describe('composition', () => { describe('composition', () => {
@@ -34,9 +35,11 @@ describe('ProcessDataService', () => {
let requestService; let requestService;
let processDataService; let processDataService;
let remoteDataBuildService; let remoteDataBuildService;
let scheduler: TestScheduler;
describe('notifyOnCompletion', () => { describe('notifyOnCompletion', () => {
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
scheduler = getTestScheduler();
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [], imports: [],
providers: [ providers: [
@@ -90,15 +93,14 @@ describe('ProcessDataService', () => {
); );
let process$ = processDataService.notifyOnCompletion('foo', 100); let process$ = processDataService.notifyOnCompletion('foo', 100);
// expect(process$).toBeObservable(cold('- 800ms (c|)', { expect(process$).toBeObservable(cold('- 150ms (c|)', {
// 'c': new RemoteData(0, 0, 0, RequestEntryState.Success, null, completedProcess) 'c': new RemoteData(0, 0, 0, RequestEntryState.Success, null, completedProcess)
// })); }));
process$.subscribe((rd) => { scheduler.flush();
expect(processDataService.findById).toHaveBeenCalledTimes(1); expect(processDataService.findById).toHaveBeenCalledTimes(1);
expect(processDataService.invalidateByHref).toHaveBeenCalledTimes(1); expect(processDataService.invalidateByHref).toHaveBeenCalledTimes(1);
}); });
}); });
});
}); });