fix: pass redis string as opts into queue

This commit is contained in:
Shinigami92
2023-09-11 18:28:13 +02:00
committed by Manuel Astudillo
parent c3e5d25abb
commit e94f568085
3 changed files with 27 additions and 8 deletions
+4 -2
View File
@@ -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, {
@@ -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 = [];
+6 -6
View File
@@ -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
View File
@@ -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' } });