redis-smq-rest-api
Version:
REST API for RedisSMQ: OpenAPI 3 schema and Swagger UI for managing queues, messages, and consumers.
49 lines • 1.71 kB
JavaScript
import { EExchangeType } from 'redis-smq';
import supertest from 'supertest';
import { describe, expect, it } from 'vitest';
import { config } from '../../../tests/common/config.js';
import { createDirectExchange, createFanoutExchange, createTopicExchange, } from '../../../tests/common/create-exchange.js';
describe('getExchangesController', () => {
it('HTTP 200 OK', async () => {
const request = supertest(`http://127.0.0.1:${config.apiServer?.port}`);
const response1 = await request.get('/api/v1/exchanges');
expect(response1.status).toEqual(200);
expect(response1.body?.data).toEqual([]);
const e1 = {
ns: 'ns1',
name: 'e1',
};
const e2 = {
ns: 'ns2',
name: 'e2',
};
const e3 = {
ns: 'ns3',
name: 'e3',
};
await createDirectExchange(e1);
await createFanoutExchange(e2);
await createTopicExchange(e3);
const response2 = await request.get('/api/v1/exchanges');
expect(response2.status).toEqual(200);
expect(response2.body?.data?.sort((a, b) => {
return `${a.name}@${a.ns}` > `${b.name}@${b.ns}` ? 1 : -1;
})).toEqual([
{
...e1,
type: EExchangeType.DIRECT,
},
{
...e2,
type: EExchangeType.FANOUT,
},
{
...e3,
type: EExchangeType.TOPIC,
},
].sort((a, b) => {
return `${a.name}@${a.ns}` > `${b.name}@${b.ns}` ? 1 : -1;
}));
});
});
//# sourceMappingURL=getExchangesController.test.js.map