redis-queuesize-poller
Version:
Polls redis at specified interval to fetch the size of a list of queues and exposes results via a getter
53 lines (48 loc) • 1.61 kB
JavaScript
var RedisQueueSizePoller = require('../index');
var Redis = require('redis');
var test = require('tape');
var redis = Redis.createClient();
redis.flushall();
test('Poll time defaults to 5s', function (t) {
var poller = new RedisQueueSizePoller({}, ['one', 'two', 'three']);
t.equal(poller.pollInterval, 5000, 'Poll time should default to 5 seconds');
poller.close();
t.end();
});
test('Results contain the queue names', function (t) {
var poller = new RedisQueueSizePoller({}, ['one', 'two', 'three']);
setTimeout(function () {
var sizes = poller.getQueueSizes();
t.equal(sizes.one, 0, 'Contains all the queue names');
t.equal(sizes.two, 0, 'Contains all the queue names');
t.equal(sizes.three, 0, 'Contains all the queue names');
poller.close();
t.end();
}, 500);
});
test('Returns correct queue sizes', function (t) {
var poller = new RedisQueueSizePoller({}, ['wow1', 'wow2', 'wow3']);
redis.multi()
.rpush('wow1', '1')
.rpush('wow1', '2')
.rpush('wow1', '3')
.rpush('wow1', '4')
.rpush('wow2', '1')
.rpush('wow2', '2')
.rpush('wow3', '1')
.rpush('wow3', '2')
.rpush('wow3', '3')
.exec(function (err, result) {
setTimeout(function () {
t.equal(err, null);
t.equal(result.length, 9);
var sizes = poller.getQueueSizes();
t.equal(sizes.wow1, 4, 'Queue sizes are correct');
t.equal(sizes.wow2, 2, 'Queue sizes are correct');
t.equal(sizes.wow3, 3, 'Queue sizes are correct');
poller.close();
redis.quit();
t.end();
}, 5000);
});
});