btrz-health-check
Version:
A series of classes that will ping different service types to verify accessibility.
46 lines (41 loc) • 1.76 kB
JavaScript
;
describe("HealthCheckers", function () {
let HealthCheckers = require("../src/health-checkers").HealthCheckers,
expect = require("chai").expect;
it("should include the ec2 instance Id and the git revision", function (done) {
var checker = new HealthCheckers();
checker.checkStatus([]).then(function (result) {
expect(result.instanceId).to.not.be.undefined;
expect(result.commit).to.not.be.undefined;
expect(result.build).to.be.eql("123456789");
done();
});
});
it("should return 200 if all services are ok", function (done) {
var checker = new HealthCheckers(),
checks = [
{checkStatus: function () {return Promise.resolve({name: "MongoDb", status: 200}); }},
{checkStatus: function () {return Promise.resolve({name: "SQS", status: 200}); }},
{checkStatus: function () {return Promise.resolve({name: "Inventory", status: 200}); }}
];
checker.checkStatus(checks).then(function (result) {
expect(result.status).to.be.eql(200);
expect(result.services.length).to.be.eql(3);
done();
});
});
it("should return 500 and the failing services", function (done) {
var checker = new HealthCheckers(),
checks = [
{checkStatus: function () {return Promise.resolve({name: "MongoDb", status: 200}); }},
{checkStatus: function () {return Promise.reject({name: "SQS", status: 500}); }},
{checkStatus: function () {return Promise.resolve({name: "Inventory", status: 200}); }}
];
checker.checkStatus(checks).then(function (result) {
expect(result.status).to.be.eql(500);
expect(result.services[0].name).to.be.eql("SQS");
expect(result.services.length).to.be.eql(1);
done();
});
});
});