UNPKG

btrz-health-check

Version:

A series of classes that will ping different service types to verify accessibility.

88 lines (79 loc) 2.44 kB
"use strict"; describe("SQSHealthChecker", function () { let SQSHealthChecker = require("../src/sqs-health-checker").SQSHealthChecker, sqs = {listQueues: function () { return Promise.resolve();}}, expect = require("chai").expect; it("shouldn throw if not a proper awsSqs is given", function () { function sut() { new SQSHealthChecker(); } expect(sut).to.throw(); }); it("shouldn throw if awsSqs doesn't implement listQueues", function () { function sut() { new SQSHealthChecker({}); } expect(sut).to.throw(); }); it("should return 200 if everything is fine", function (done) { let checker = new SQSHealthChecker(sqs); checker.checkStatus().then(function (result) { expect(result.name).to.be.eql("SQS"); expect(result.status).to.be.eql(200); done(); }); }); it("should allow for a custom service name", function (done) { let checker = new SQSHealthChecker(sqs, {name: "MyService"}); checker.checkStatus().then(function (result) { expect(result.name).to.be.eql("MyService"); expect(result.status).to.be.eql(200); done(); }); }); it("should return 500 if can't connect", function (done) { let sqs = {listQueues: function () { return Promise.reject(); } }; let checker = new SQSHealthChecker(sqs); checker.checkStatus().catch(function (result) { expect(result.name).to.be.eql("SQS"); expect(result.status).to.be.eql(500); done(); }); }); it("should call the logger with the error if provide it", function (done) { let sqs = {listQueues: function () { return Promise.reject(); } }, options = { logger: { error: function () { } } }; let checker = new SQSHealthChecker(sqs, options); checker.checkStatus().catch((result) => { expect(result.name).to.be.eql("SQS"); expect(result.status).to.be.eql(500); done(); }); }); it("should allow for a custom service name on failures as well", function (done) { let sqs = {listQueues: function () { return Promise.reject(); } }; let checker = new SQSHealthChecker(sqs, {name: "MyService"}); checker.checkStatus().catch(function (result) { expect(result.name).to.be.eql("MyService"); expect(result.status).to.be.eql(500); done(); }); }); });