UNPKG

mqrpc

Version:

💫 Easy RPC over RabbitMQ

31 lines (30 loc) • 1.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = require("ava"); const RpcServer_1 = require("../../lib/RpcServer"); const errors_1 = require("../../lib/RpcServer/errors"); ava_1.default.beforeEach(t => { t.context.server = new RpcServer_1.default({ amqpClient: { amqpUrl: '' } }); }); ava_1.default('[unit] #call throws when no procedure name is given', t => { return t.throws(t.context.server.call('', []), errors_1.InvalidCall); }); ava_1.default('[unit] #call throws when the procedure does not exist', t => { return t.throws(t.context.server.call('noop', []), errors_1.NoSuchProcedure); }); ava_1.default('[unit] #call returns what the procedure resolves', async (t) => { t.context.server.register('meaning.of.life', () => 42); t.is(await t.context.server.call('meaning.of.life', []), 42); }); ava_1.default('[unit] #call throws wrapped procedure errors', async (t) => { t.plan(5); t.context.server.register('meaning.of.life', () => Promise.reject(new Error('42'))); return t.context.server.call('meaning.of.life', []) .catch(err => { t.true(err instanceof errors_1.ProcedureFailed); t.truthy(err.cause); t.true(err.cause instanceof Error); t.is(err.cause.message, '42'); t.is(err.stack, err.cause.stack); }); });