@dasch-swiss/dsp-js
Version:
JavaScript library that handles API requests to Knora
87 lines • 4.46 kB
JavaScript
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