mqrpc
Version:
💫 Easy RPC over RabbitMQ
40 lines (39 loc) • 1.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = require("ava");
const amqp = require("amqplib");
const _config_1 = require("../_config");
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 fails when given neither a connection nor a URL', async (t) => {
const client = new AmqpClient_1.default({});
await t.throws(client.init());
});
ava_1.default('[unit] #init connects to RabbitMQ when given a URL', async (t) => {
t.context.client = new AmqpClient_1.default({ amqpUrl: _config_1.AMQP_URL });
await t.context.client.init();
t.truthy(t.context.client.connection);
t.true(t.context.client.ownConnection);
});
ava_1.default('[unit] #init reuses a given connection', async (t) => {
const connection = await amqp.connect(_config_1.AMQP_URL);
t.context.client = new AmqpClient_1.default({ connection });
await t.context.client.init();
t.is(t.context.client.connection, connection);
});
ava_1.default('[unit] #init reuses a given channel', async (t) => {
const connection = await amqp.connect(_config_1.AMQP_URL);
const channel = await connection.createChannel();
t.context.client = new AmqpClient_1.default({ channel });
await t.context.client.init();
t.is(t.context.client.channel, channel);
});
ava_1.default('[unit] #init creates a channel', async (t) => {
const connection = await amqp.connect(_config_1.AMQP_URL);
t.context.client = new AmqpClient_1.default({ connection });
await t.context.client.init();
t.is(t.context.client.connection, connection);
});