redis-smq-rest-api
Version:
A RESTful API for RedisSMQ
58 lines • 5.01 kB
JavaScript
;
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 redis_smq_1 = require("redis-smq");
const supertest_1 = __importDefault(require("supertest"));
const vitest_1 = require("vitest");
const config_js_1 = require("../../../../tests/common/config.js");
const create_queue_js_1 = require("../../../../tests/common/create-queue.js");
const publish_message_js_1 = require("../../../../tests/common/publish-message.js");
const save_consumer_group_js_1 = require("../../../../tests/common/save-consumer-group.js");
(0, vitest_1.describe)('countConsumerGroupPendingMessagesController', () => {
(0, vitest_1.it)('HTTP 200 OK', () => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c;
const { queue } = yield (0, create_queue_js_1.createQueue)('my-queue', redis_smq_1.EQueueType.LIFO_QUEUE, redis_smq_1.EQueueDeliveryModel.PUB_SUB);
const consumerGroup1 = yield (0, save_consumer_group_js_1.saveConsumerGroup)(queue, 'my-group1');
const consumerGroup2 = yield (0, save_consumer_group_js_1.saveConsumerGroup)(queue, 'my-group2');
const batch1 = yield (0, publish_message_js_1.publishMessage)(queue);
(0, vitest_1.expect)(batch1.length).toEqual(2);
const batch2 = yield (0, publish_message_js_1.publishMessage)(queue);
(0, vitest_1.expect)(batch2.length).toEqual(2);
const request = (0, supertest_1.default)(`http://127.0.0.1:${(_a = config_js_1.config.apiServer) === null || _a === void 0 ? void 0 : _a.port}`);
const response1 = yield request.get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/consumer-groups/${consumerGroup1}/total-messages`);
(0, vitest_1.expect)(response1.status).toEqual(200);
(0, vitest_1.expect)((_b = response1.body) === null || _b === void 0 ? void 0 : _b.data).toEqual(2);
const response2 = yield request.get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/consumer-groups/${consumerGroup2}/total-messages`);
(0, vitest_1.expect)(response2.status).toEqual(200);
(0, vitest_1.expect)((_c = response2.body) === null || _c === void 0 ? void 0 : _c.data).toEqual(2);
}));
(0, vitest_1.it)('HTTP 400 BAD REQUEST: QueueInvalidQueueParameterError', () => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d, _e;
const request = (0, supertest_1.default)(`http://127.0.0.1:${(_a = config_js_1.config.apiServer) === null || _a === void 0 ? void 0 : _a.port}`);
const response1 = yield request.get(`/api/v1/namespaces/$$$/queues/@@@@/consumer-groups/******/total-messages`);
(0, vitest_1.expect)(response1.status).toEqual(400);
(0, vitest_1.expect)((_c = (_b = response1.body) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.code).toEqual(400);
(0, vitest_1.expect)((_e = (_d = response1.body) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e.message).toEqual('QueueInvalidQueueParameterError');
}));
(0, vitest_1.it)('HTTP 400 BAD REQUEST: QueueMessagesConsumerGroupIdNotSupportedError', () => __awaiter(void 0, void 0, void 0, function* () {
var _a, _b, _c, _d, _e;
const { queue } = yield (0, create_queue_js_1.createQueue)('my-queue', redis_smq_1.EQueueType.LIFO_QUEUE, redis_smq_1.EQueueDeliveryModel.POINT_TO_POINT);
const request = (0, supertest_1.default)(`http://127.0.0.1:${(_a = config_js_1.config.apiServer) === null || _a === void 0 ? void 0 : _a.port}`);
const response1 = yield request.get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/consumer-groups/gp1/total-messages`);
(0, vitest_1.expect)(response1.status).toEqual(400);
(0, vitest_1.expect)((_c = (_b = response1.body) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.code).toEqual(400);
(0, vitest_1.expect)((_e = (_d = response1.body) === null || _d === void 0 ? void 0 : _d.error) === null || _e === void 0 ? void 0 : _e.message).toEqual('QueueMessagesConsumerGroupIdNotSupportedError');
}));
});
//# sourceMappingURL=countConsumerGroupPendingMessagesController.test.js.map