UNPKG

redis-smq-rest-api

Version:

REST API for RedisSMQ: OpenAPI 3 schema and Swagger UI for managing queues, messages, and consumers.

74 lines 4.94 kB
"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 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_consumer_group_js_1 = require("../../../tests/common/create-consumer-group.js"); const create_queue_js_1 = require("../../../tests/common/create-queue.js"); const publish_message_js_1 = require("../../../tests/common/publish-message.js"); (0, vitest_1.describe)('getQueuePendingMessagesController', () => { (0, vitest_1.it)('Point-2-Point: HTTP 200 OK', () => __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'); const [id1] = yield (0, publish_message_js_1.publishMessage)(queue); const [id2] = yield (0, publish_message_js_1.publishMessage)(queue); 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 queryParams = { pageSize: 10, page: 1, }; const response1 = yield request .get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/pending-messages`) .query(queryParams); (0, vitest_1.expect)(response1.status).toEqual(200); (0, vitest_1.expect)((_c = (_b = response1.body) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.totalItems).toEqual(2); (0, vitest_1.expect)((_e = (_d = response1.body) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.items.map((i) => i.id).sort()).toEqual([id1, id2].sort()); })); (0, vitest_1.it)('PUB/SUB: HTTP 200 OK', () => __awaiter(void 0, void 0, void 0, function* () { var _a, _b, _c, _d, _e, _f, _g, _h, _j; const { queue } = yield (0, create_queue_js_1.createQueue)('q1', redis_smq_1.EQueueType.FIFO_QUEUE, redis_smq_1.EQueueDeliveryModel.PUB_SUB); yield (0, create_consumer_group_js_1.createConsumerGroup)(queue, 'group1'); yield (0, create_consumer_group_js_1.createConsumerGroup)(queue, 'group2'); const ids = yield (0, publish_message_js_1.publishMessage)(queue); 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 queryParams1 = { pageSize: 10, page: 1, consumerGroupId: 'group1', }; const response1 = yield request .get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/pending-messages`) .query(queryParams1); (0, vitest_1.expect)(response1.status).toEqual(200); (0, vitest_1.expect)((_c = (_b = response1.body) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.totalItems).toEqual(1); const id1 = ((_e = (_d = response1.body) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.items[0].id) || ''; (0, vitest_1.expect)(ids.includes(id1)).toBe(true); const queryParams2 = { pageSize: 10, page: 1, consumerGroupId: 'group2', }; const response2 = yield request .get(`/api/v1/namespaces/${queue.ns}/queues/${queue.name}/pending-messages`) .query(queryParams2); (0, vitest_1.expect)(response2.status).toEqual(200); (0, vitest_1.expect)((_g = (_f = response2.body) === null || _f === void 0 ? void 0 : _f.data) === null || _g === void 0 ? void 0 : _g.totalItems).toEqual(1); const id2 = ((_j = (_h = response2.body) === null || _h === void 0 ? void 0 : _h.data) === null || _j === void 0 ? void 0 : _j.items[0].id) || ''; (0, vitest_1.expect)(ids.includes(id2)).toBe(true); (0, vitest_1.expect)([id1, id2].sort()).toEqual(ids.sort()); })); }); //# sourceMappingURL=getQueuePendingMessagesController.test.js.map