UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

87 lines 4.46 kB
import { KnoraApiConfig } from "../../../knora-api-config"; import { KnoraApiConnection } from "../../../knora-api-connection"; describe("HealthEndpoint", function () { var config = new KnoraApiConfig("http", "localhost", 3333, undefined, undefined, true); var knoraApiConnection = new KnoraApiConnection(config); var getServerFromResponseHeader = function (resHeader) { // split by newline: first line server info, second line date var headerParts = resHeader.split("\n"); // remove "Server: " from string return headerParts[0].replace("Server: ", ""); }; beforeEach(function () { jasmine.Ajax.install(); }); afterEach(function () { jasmine.Ajax.uninstall(); }); describe("Method getHealthStatus", function () { it("should return a running health status", function (done) { knoraApiConnection.system.healthEndpoint.getHealthStatus().subscribe(function (response) { expect(response.body.name).toEqual("AppState"); expect(response.body.message).toEqual("Application is healthy"); expect(response.body.severity).toEqual("non fatal"); expect(response.body.status).toEqual(true); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var health = require("../../../../test/data/api/system/health/running-response.json"); var responseHeader = require("../../../../test/data/api/system/health/response-headers.txt"); request.respondWith({ status: 200, responseText: JSON.stringify(health), response: health, responseHeaders: { server: getServerFromResponseHeader(responseHeader) } }); expect(request.url).toBe("http://localhost:3333/health"); expect(request.method).toEqual("GET"); }); it("should return a maintenance mode health status", function (done) { knoraApiConnection.system.healthEndpoint.getHealthStatus().subscribe(function (response) { expect(response.body.name).toEqual("AppState"); expect(response.body.message).toEqual("Application is in maintenance mode. Please retry later."); expect(response.body.severity).toEqual("non fatal"); expect(response.body.status).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var health = require("../../../../test/data/api/system/health/maintenance-mode-response.json"); var responseHeader = require("../../../../test/data/api/system/health/response-headers.txt"); request.respondWith({ status: 200, responseText: JSON.stringify(health), response: health, responseHeaders: { server: getServerFromResponseHeader(responseHeader) } }); expect(request.url).toBe("http://localhost:3333/health"); expect(request.method).toEqual("GET"); }); it("should return a stopped mode health status", function (done) { knoraApiConnection.system.healthEndpoint.getHealthStatus().subscribe(function (response) { expect(response.body.name).toEqual("AppState"); expect(response.body.message).toEqual("Stopped. Please retry later."); expect(response.body.severity).toEqual("non fatal"); expect(response.body.status).toEqual(false); done(); }); var request = jasmine.Ajax.requests.mostRecent(); var health = require("../../../../test/data/api/system/health/stopped-response.json"); var responseHeader = require("../../../../test/data/api/system/health/response-headers.txt"); request.respondWith({ status: 200, responseText: JSON.stringify(health), response: health, responseHeaders: { server: getServerFromResponseHeader(responseHeader) } }); expect(request.url).toBe("http://localhost:3333/health"); expect(request.method).toEqual("GET"); }); }); }); //# sourceMappingURL=health-endpoint.spec.js.map