mqrpc
Version:
💫 Easy RPC over RabbitMQ
32 lines (31 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ava_1 = require("ava");
const Timer_1 = require("../../lib/Timer");
const _utils_1 = require("../_utils");
const timeout = { id: 'ackTo', length: 25 };
ava_1.default.beforeEach(t => t.context.timer = new Timer_1.default());
ava_1.default('[unit] #clear stops all active timeouts for all calls', t => {
const promises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout, { id: 'fast!', length: 15 }),
t.context.timer.addTimeouts('an-id-also', timeout),
Promise.resolve(42) // for .race
];
t.context.timer.clear();
return _utils_1.delay(25).then(() => t.notThrows(Promise.race(promises)));
});
ava_1.default('[unit] #clear removes all calls', t => {
const promises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout)
];
t.context.timer.clear();
const otherPromises = [
t.context.timer.addTimeouts('an-id', timeout),
t.context.timer.addTimeouts('an-id-too', timeout)
];
t.not(promises[0], otherPromises[0]);
t.not(promises[1], otherPromises[1]);
t.context.timer.clear(); // cleanup
});