Skip to content

Commit

Permalink
fix: pass redis string as opts into queue
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinigami92 authored and manast committed Nov 11, 2023
1 parent c3e5d25 commit e94f568
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 8 deletions.
6 changes: 4 additions & 2 deletions lib/queue.js
Expand Up @@ -121,7 +121,9 @@ const Queue = function Queue(name, url, opts) {

opts.redis = {
enableReadyCheck: false,
...opts.redis
...(_.isString(opts.redis)
? { ...redisOptsFromUrl(opts.redis) }
: opts.redis)
};

_.defaults(opts.redis, {
Expand Down Expand Up @@ -913,7 +915,7 @@ Queue.prototype.isPaused = async function(isLocal) {
};

Queue.prototype.run = function(concurrency, handlerName) {
if(!Number.isInteger(concurrency)) {
if (!Number.isInteger(concurrency)) {
throw new Error('Cannot set Float as concurrency');
}
const promises = [];
Expand Down
12 changes: 6 additions & 6 deletions test/test_child-pool.js
Expand Up @@ -151,12 +151,12 @@ describe('Child pool', () => {
});

it('should not overwrite the the childPool singleton when isSharedChildPool is false', () => {
const childPoolA = new childPool(true)
const childPoolB = new childPool(false)
const childPoolA = new childPool(true);
const childPoolB = new childPool(false);
const childPoolC = new childPool(true);

expect(childPoolA).to.be.equal(childPoolC)
expect(childPoolB).to.not.be.equal(childPoolA)
expect(childPoolB).to.not.be.equal(childPoolC)
})
expect(childPoolA).to.be.equal(childPoolC);
expect(childPoolB).to.not.be.equal(childPoolA);
expect(childPoolB).to.not.be.equal(childPoolC);
});
});
17 changes: 17 additions & 0 deletions test/test_queue.js
Expand Up @@ -206,6 +206,23 @@ describe('Queue', () => {
return queue.close();
});

it('creates a queue using the supplied redis url as opts', () => {
const queue = new Queue('custom', {
redis: 'redis://abc:123@127.2.3.4:1234/1'
});

expect(queue.client.options.host).to.be.eql('127.2.3.4');
expect(queue.eclient.options.host).to.be.eql('127.2.3.4');

expect(queue.client.options.port).to.be.eql(1234);
expect(queue.eclient.options.port).to.be.eql(1234);

expect(queue.client.options.db).to.be.eql(1);
expect(queue.eclient.options.db).to.be.eql(1);

return queue.close();
});

it('creates a queue using the supplied redis host', () => {
const queue = new Queue('custom', { redis: { host: 'localhost' } });

Expand Down

0 comments on commit e94f568

Please sign in to comment.