import {TestBed, inject, getTestBed} from '@angular/core/testing'; import { HealthStatusService } from './health-status.service'; import {Constants} from "../../utils/constants"; import {HttpClientTestingModule, HttpTestingController} from "@angular/common/http/testing"; import {ExternalComponentStatus} from "../../models/externalComponentStatus"; describe('HealthStatusService', () => { let injector; let service: HealthStatusService; let httpMock: HttpTestingController; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [HealthStatusService] }); injector = getTestBed(); service = injector.get(HealthStatusService); httpMock = injector.get(HttpTestingController); }); describe('#getProbe', () =>{ it('when call probe, there is http GET with right url', () => { service.getProbe().subscribe((result: Array)=>{ expect(result[0].component).toEqual("AAI"); expect(result[0].available).toBeTruthy(); expect(result[0].metadata).toEqual({ myKey: 'myValue' }); expect(result[1].component).toEqual("MSO"); expect(result[1].available).toBeFalsy(); expect(result[1].metadata).toEqual({otherKey: 123}); }); const req = httpMock.expectOne(Constants.Path.SERVICES_PROBE_PATH); expect(req.request.method).toEqual('GET'); req.flush([ { "component": "AAI", "available": true, "metadata": { "myKey": "myValue" } }, { "component": "MSO", "available": false, "metadata": { "otherKey": 123 } }, ]); }); }); });