import {fakeAsync, flush, TestBed} from '@angular/core/testing'; import { ObservationService } from './observation.service'; import {HttpClientTestingModule} from '@angular/common/http/testing'; import { ObservationTable, ScanningObservationTable } from '@nspop/gm-web-facade-api'; import {of} from 'rxjs/internal/observable/of'; describe('ObservationService', () => { let service: ObservationService; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [], }); service = TestBed.inject(ObservationService); service.getUltrasoundObservationTable = () => of({mother: {}} as any); service.getClinicalObservationTable = () => of({mother: {}} as any); }); it('should be created', () => { expect(service).toBeTruthy(); }); it('updates carePlan$ when asked to refresh', fakeAsync(() => { spyOn(service, 'refresh').and.callThrough(); service.refresh(); flush(); let called = false; service.ultrasoundObservationTable$.subscribe((ultraSoundObservationTable: ScanningObservationTable | undefined) => { expect(ultraSoundObservationTable).toBeDefined(); called = true; }); expect(service.refresh).toHaveBeenCalledTimes(1); expect(called).toBeTrue(); })); it('updates activities$ when asked to refresh', fakeAsync(() => { spyOn(service, 'refresh').and.callThrough(); service.refresh(); flush(); let called = false; service.clinicalObservationTable$.subscribe((clinicalObservationTable: ObservationTable | undefined) => { expect(clinicalObservationTable).toBeDefined(); called = true; }); expect(service.refresh).toHaveBeenCalledTimes(1); expect(called).toBeTrue(); })); });