mqrpc
Version:
💫 Easy RPC over RabbitMQ
28 lines (27 loc) • 1.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = require("ava");
const sinon = require("sinon");
const amqp = require("amqplib");
const _config_1 = require("../_config");
const RpcClient_1 = require("../../lib/RpcClient");
const AmqpClient_1 = require("../../lib/AmqpClient");
ava_1.default.afterEach(async (t) => {
if (t.context.client)
await t.context.client.term();
});
ava_1.default('[unit] #init instances an AmqpClient', async (t) => {
t.context.client = new RpcClient_1.default({ amqpClient: { amqpUrl: _config_1.AMQP_URL } });
await t.context.client.init();
t.true(t.context.client.amqpClient instanceof AmqpClient_1.default);
});
ava_1.default.serial('[unit] #init starts listening for replies', async (t) => {
const connection = await amqp.connect(_config_1.AMQP_URL);
const channel = await connection.createChannel();
const consumeSpy = sinon.spy(channel, 'consume');
sinon.stub(connection, 'createChannel').resolves(channel);
t.context.client = new RpcClient_1.default({ amqpClient: { connection } });
await t.context.client.init();
sinon.assert.calledWith(consumeSpy, 'amq.rabbitmq.reply-to', sinon.match.func, { noAck: true });
t.pass();
});