arecibo
Version:
Fastify plugin that respondes to Kubernetes readiness and liveness probes.
78 lines • 3.86 kB
JavaScript
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const node_assert_1 = __importDefault(require("node:assert"));
const fastify_1 = __importDefault(require("fastify"));
const index_1 = __importDefault(require("./index"));
(0, node_test_1.test)('arecibo plugin', (t) => __awaiter(void 0, void 0, void 0, function* () {
yield t.test('registers routes correctly', () => __awaiter(void 0, void 0, void 0, function* () {
const fastify = (0, fastify_1.default)();
yield fastify.register(index_1.default, {
logLevel: 'silent',
});
const readinessResponse = yield fastify.inject({
method: 'GET',
url: '/arecibo/readiness',
});
const livenessResponse = yield fastify.inject({
method: 'GET',
url: '/arecibo/liveness',
});
node_assert_1.default.equal(readinessResponse.statusCode, 200);
node_assert_1.default.equal(livenessResponse.statusCode, 200);
node_assert_1.default.equal(readinessResponse.headers['content-type'], 'text/html');
node_assert_1.default.equal(livenessResponse.headers['content-type'], 'text/html');
}));
yield t.test('accepts custom urls', () => __awaiter(void 0, void 0, void 0, function* () {
const fastify = (0, fastify_1.default)();
yield fastify.register(index_1.default, {
logLevel: 'silent',
readinessURL: '/custom/readiness',
livenessURL: '/custom/liveness',
});
const readinessResponse = yield fastify.inject({
method: 'GET',
url: '/custom/readiness',
});
const livenessResponse = yield fastify.inject({
method: 'GET',
url: '/custom/liveness',
});
node_assert_1.default.equal(readinessResponse.statusCode, 200);
node_assert_1.default.equal(livenessResponse.statusCode, 200);
}));
yield t.test('accepts custom callbacks', () => __awaiter(void 0, void 0, void 0, function* () {
const fastify = (0, fastify_1.default)();
const customMessage = 'Custom response';
yield fastify.register(index_1.default, {
logLevel: 'silent',
readinessCallback: (_, reply) => reply.send(customMessage),
livenessCallback: (_, reply) => reply.send(customMessage),
});
const readinessResponse = yield fastify.inject({
method: 'GET',
url: '/arecibo/readiness',
});
const livenessResponse = yield fastify.inject({
method: 'GET',
url: '/arecibo/liveness',
});
node_assert_1.default.equal(readinessResponse.statusCode, 200);
node_assert_1.default.equal(livenessResponse.statusCode, 200);
node_assert_1.default.equal(readinessResponse.payload, customMessage);
node_assert_1.default.equal(livenessResponse.payload, customMessage);
}));
}));
//# sourceMappingURL=index.test.js.map