UNPKG

mqrpc

Version:

💫 Easy RPC over RabbitMQ

28 lines (27 loc) • 1.25 kB
"use strict"; 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(); });