diff options
Diffstat (limited to 'vid-webpack-master/src/app/shared/server/healthStatusService')
2 files changed, 77 insertions, 0 deletions
diff --git a/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.spec.ts b/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.spec.ts new file mode 100644 index 000000000..36f6349e2 --- /dev/null +++ b/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.spec.ts @@ -0,0 +1,60 @@ +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<ExternalComponentStatus>)=>{ + 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 + } + }, + ]); + }); + + }); + +}); diff --git a/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.ts b/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.ts new file mode 100644 index 000000000..4305ab97e --- /dev/null +++ b/vid-webpack-master/src/app/shared/server/healthStatusService/health-status.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import {HttpClient} from "@angular/common/http"; +import {Observable} from "rxjs/Observable"; +import {Constants} from "../../utils/constants"; +import {ExternalComponentStatus} from "../../models/externalComponentStatus"; + +@Injectable() +export class HealthStatusService { + + constructor(private _http: HttpClient) { + } + + getProbe(): Observable<Array<ExternalComponentStatus>> { + let pathQuery = Constants.Path.SERVICES_PROBE_PATH; + return this._http.get<Array<ExternalComponentStatus>>(pathQuery).map(res => res); + } +} |