New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

rethinkdb-job-queue

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rethinkdb-job-queue - npm Package Compare versions

Comparing version 0.0.8 to 0.1.0

dist/datetime.js

9

CHANGELOG.md
# `rethinkdb-job-queue` Change log
## v0.1.0 / 2016-09-16
* Added 'db-driver' module for connection testing.
* Changed 'Queue()' constructor API to add connection options.
* Standardized time related options to milliseconds.
* Added 'datetime' module to add and format dates.
* Updated 'is' module to include dateBefore, dateAfter, dateBetween.
* Removed the 'moment' library.
## v0.0.8 / 2016-09-09

@@ -4,0 +13,0 @@

10

dist/db-review.js

@@ -5,3 +5,3 @@ 'use strict';

var Promise = require('bluebird');
var moment = require('moment');
var datetime = require('./datetime');
var dbResult = require('./db-result');

@@ -14,3 +14,3 @@ var queueProcess = require('./queue-process');

function updateFailedJobs(q) {
logger('updateFailedJobs: ' + moment().format('YYYY-MM-DD HH:mm:ss.SSS'));
logger('updateFailedJobs: ' + datetime.format(new Date()));

@@ -40,3 +40,3 @@ return Promise.resolve().then(function () {

function removeFinishedJobs(q) {
logger('removeFinishedJobs: ' + moment().format('YYYY-MM-DD HH:mm:ss.SSS'));
logger('removeFinishedJobs: ' + datetime.format(new Date()));

@@ -48,3 +48,3 @@ if (q.removeFinishedJobs < 1 || q.removeFinishedJobs === false) {

return Promise.resolve().then(function () {
return q.r.db(q.db).table(q.name).orderBy({ index: enums.index.indexFinishedDateFinished }).filter(q.r.row('dateFinished').add(q.r.expr(q.removeFinishedJobs).mul(86400)).lt(q.r.now())).delete().run();
return q.r.db(q.db).table(q.name).orderBy({ index: enums.index.indexFinishedDateFinished }).filter(q.r.row('dateFinished').add(q.r.expr(q.removeFinishedJobs).div(1000)).lt(q.r.now())).delete().run();
}).then(function (deleteResult) {

@@ -72,3 +72,3 @@ logger('deleteResult', deleteResult);

if (!dbReviewIntervalId) {
var interval = q.masterInterval * 1000;
var interval = q.masterInterval;
dbReviewIntervalId = setInterval(function () {

@@ -75,0 +75,0 @@ return runReviewTasks(q);

@@ -53,9 +53,9 @@ 'use strict';

db: 'rjqJobQueue',
masterInterval: 310,
masterInterval: 310000, // 5 minutes and 10 seconds
priority: 'normal',
timeout: 300,
timeout: 300000, // 5 minutes
retryMax: 3,
retryDelay: 600,
retryDelay: 600000, // 10 minutes
concurrency: 1,
removeFinishedJobs: 180
removeFinishedJobs: 15552000000 // 180 days
},

@@ -62,0 +62,0 @@ index: {

@@ -7,63 +7,106 @@ 'use strict';

module.exports.object = function isObject(value) {
function isObject(value) {
logger('isObject', value);
return Object.prototype.toString.call(value) === '[object Object]';
};
}
module.exports.object = isObject;
module.exports.function = function isFunction(value) {
function isFunction(value) {
logger('isFunction', value);
return Object.prototype.toString.call(value) === '[object Function]';
};
}
module.exports.function = isFunction;
module.exports.string = function isString(value) {
function isString(value) {
logger('isString', value);
return Object.prototype.toString.call(value) === '[object String]';
};
}
module.exports.string = isString;
var isNumber = module.exports.number = function isNumber(value) {
function isNumber(value) {
logger('isNumber', value);
return Object.prototype.toString.call(value) === '[object Number]';
};
}
module.exports.number = isNumber;
var isBoolean = module.exports.boolean = function isBoolean(value) {
function isBoolean(value) {
logger('isBoolean', value);
return Object.prototype.toString.call(value) === '[object Boolean]';
};
}
module.exports.boolean = isBoolean;
module.exports.true = function isTrue(value) {
function isTrue(value) {
logger('isTrue', value);
return isBoolean(value) && value === true;
};
}
module.exports.true = isTrue;
module.exports.false = function isFalse(value) {
function isFalse(value) {
logger('isFalse', value);
return isBoolean(value) && value === false;
};
}
module.exports.false = isFalse;
var isDate = module.exports.date = function isDate(value) {
function isDate(value) {
logger('isDate', value);
return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';
};
}
module.exports.date = isDate;
var isUuid = module.exports.uuid = function isUuid(value) {
function ensureDate(value) {
logger('ensureDate', value);
return isDate(value) ? value : new Date(value);
}
function isDateBefore(testDate, refDate) {
logger('isDateBefore', testDate, refDate);
testDate = ensureDate(testDate);
refDate = ensureDate(refDate);
return refDate.valueOf() > testDate.valueOf();
}
module.exports.dateBefore = isDateBefore;
function isDateAfter(testDate, refDate) {
logger('isDateAfter', testDate, refDate);
testDate = ensureDate(testDate);
refDate = ensureDate(refDate);
return refDate.valueOf() < testDate.valueOf();
}
module.exports.dateAfter = isDateAfter;
function isDateBetween(testDate, aDate, bDate) {
logger('isDateBetween', testDate, aDate, bDate);
aDate = ensureDate(aDate);
bDate = ensureDate(bDate);
var earlyDate = aDate > bDate ? bDate : aDate;
var laterDate = aDate > bDate ? aDate : bDate;
return isDateAfter(testDate, earlyDate) && isDateBefore(testDate, laterDate);
}
module.exports.dateBetween = isDateBetween;
function isUuid(value) {
logger('isUuid', value);
return uuidRegExp.test(value);
};
}
module.exports.uuid = isUuid;
var isNan = module.exports.nan = function isNan(value) {
function isNan(value) {
logger('isNan', value);
return Number.isNaN(value);
};
}
module.exports.nan = isNan;
module.exports.integer = function isInteger(value) {
function isInteger(value) {
logger('isInteger', value);
return isNumber(value) && !isNan(value) && value % 1 === 0;
};
}
module.exports.integer = isInteger;
module.exports.array = function isArray(value) {
function isArray(value) {
logger('isArray', value);
return Array.isArray(value);
};
}
module.exports.array = isArray;
var isJob = module.exports.job = function isJob(value) {
function isJob(value) {
logger('isJob', value);

@@ -92,5 +135,7 @@ if (!value) {

return true;
};
}
module.exports.job = isJob;
function isStatus(job, status) {
logger('isStatus', job, status);
if (!isJob(job)) {

@@ -106,2 +151,3 @@ return false;

module.exports.active = function isActive(job) {
logger('isActive', job);
return isStatus(job, enums.status.active);

@@ -111,2 +157,3 @@ };

module.exports.completed = function isCompleted(job) {
logger('isCompleted', job);
return isStatus(job, enums.status.completed);

@@ -116,2 +163,3 @@ };

module.exports.cancelled = function isCancelled(job) {
logger('isCancelled', job);
return isStatus(job, enums.status.cancelled);

@@ -121,2 +169,3 @@ };

module.exports.failed = function isFailed(job) {
logger('isFailed', job);
return isStatus(job, enums.status.failed);

@@ -126,3 +175,4 @@ };

module.exports.terminated = function isTerminated(job) {
logger('isTerminated', job);
return isStatus(job, enums.status.terminated);
};

@@ -5,3 +5,2 @@ 'use strict';

var Promise = require('bluebird');
var moment = require('moment');
var is = require('./is');

@@ -14,5 +13,5 @@ var enums = require('./enums');

job.status = enums.status.completed;
job.dateFinished = moment().toDate();
job.dateFinished = new Date();
job.progress = 100;
var duration = moment(job.dateFinished).diff(moment(job.dateStarted));
var duration = job.dateFinished - job.dateStarted;
duration = duration >= 0 ? duration : 0;

@@ -19,0 +18,0 @@

@@ -5,3 +5,3 @@ 'use strict';

var Promise = require('bluebird');
var moment = require('moment');
var datetime = require('./datetime');
var is = require('./is');

@@ -24,5 +24,5 @@ var enums = require('./enums');

}
job.dateFinished = moment().toDate();
job.dateFinished = new Date();
job.progress = 0;
var duration = moment(job.dateFinished).diff(moment(job.dateStarted));
var duration = job.dateFinished - job.dateStarted;
duration = duration >= 0 ? duration : 0;

@@ -29,0 +29,0 @@

@@ -5,3 +5,3 @@ 'use strict';

var is = require('./is');
var moment = require('moment');
var datetime = require('./datetime');
var enums = require('./enums');

@@ -8,0 +8,0 @@

@@ -25,3 +25,3 @@ 'use strict';

progress: percent,
dateEnable: job.q.r.now().add(job.q.r.row('timeout')).add(job.q.r.row('retryDelay').mul(job.q.r.row('retryCount')))
dateEnable: job.q.r.now().add(job.q.r.row('timeout').div(1000)).add(job.q.r.row('retryDelay').div(1000).mul(job.q.r.row('retryCount')))
}).run();

@@ -28,0 +28,0 @@ }).then(function (updateResult) {

@@ -9,3 +9,3 @@ 'use strict';

var uuid = require('uuid');
var moment = require('moment');
var datetime = require('./datetime');
var enums = require('./enums');

@@ -40,3 +40,3 @@ var is = require('./is');

}
var now = moment().toDate();
var now = new Date();
this.id = uuid.v4();

@@ -92,3 +92,3 @@ this.priority = options.priority;

return {
date: moment().toDate(),
date: new Date(),
queueId: this.q.id,

@@ -95,0 +95,0 @@ type: type,

'use strict';
var path = require('path');
var moment = require('moment');
var datetime = require('./datetime');
var debug = require('debug');
module.exports = function logger(rjqModule) {
if (process.env.DEBUG) {
var time = moment().format('HH:mm:ss.SSS');
var time = datetime.format(new Date());
var moduleName = path.basename(rjqModule.id, '.js');

@@ -10,0 +10,0 @@ var prefix = '[' + time + '][' + moduleName + ']';

@@ -7,3 +7,3 @@ 'use strict';

var Promise = require('bluebird');
var moment = require('moment');
var datetime = require('./datetime');
var is = require('./is');

@@ -24,5 +24,5 @@ var enums = require('./enums');

status: enums.status.cancelled,
dateFinished: moment().toDate(),
dateFinished: new Date(),
log: q.r.row('log').append({
date: moment().toDate(),
date: new Date(),
queueId: q.id,

@@ -29,0 +29,0 @@ type: enums.log.information,

@@ -5,3 +5,2 @@ 'use strict';

var Promise = require('bluebird');
var rethinkdbdash = require('rethinkdbdash');
var enums = require('./enums');

@@ -11,11 +10,10 @@ var dbAssert = require('./db-assert');

var queueChange = require('./queue-change');
var dbDriver = require('./db-driver');
module.exports.attach = function dbAttach(q) {
module.exports.attach = function dbAttach(q, cxn) {
logger('attach');
q._r = rethinkdbdash({
host: q.host,
port: q.port,
db: q.db,
silent: true
});
q._r = dbDriver(cxn);
q._host = q.r._poolMaster._options.host;
q._port = q.r._poolMaster._options.port;
q._db = q.r._poolMaster._options.db;
q._ready = dbAssert(q).then(function () {

@@ -22,0 +20,0 @@ if (q.changeFeed) {

@@ -20,3 +20,3 @@ 'use strict';

dateStarted: q.r.now(),
dateEnable: q.r.now().add(q.r.row('timeout')).add(q.r.row('retryDelay').mul(q.r.row('retryCount'))),
dateEnable: q.r.now().add(q.r.row('timeout').div(1000)).add(q.r.row('retryDelay').div(1000).mul(q.r.row('retryCount'))),
queueId: q.id,

@@ -23,0 +23,0 @@ log: q.r.row('log').append({

@@ -15,3 +15,3 @@ 'use strict';

logger('addJobTimeout');
var timeoutValue = job.timeout * 1000;
var timeoutValue = job.timeout;
var jobTimeout = {

@@ -18,0 +18,0 @@ timeoutHandler: timeoutHandler,

@@ -35,3 +35,3 @@ 'use strict';

function Queue(options) {
function Queue(cxn, options) {
_classCallCheck(this, Queue);

@@ -45,6 +45,6 @@

_this._name = options.name || enums.options.name;
_this._host = options.host || enums.options.host;
_this._port = options.port || enums.options.port;
_this._db = options.db || enums.options.db;
_this._r = false;
_this._host = ''; // Populated by 'queue-db.attach()'
_this._port = 0; // Populated by 'queue-db.attach()'
_this._db = ''; // Populated by 'queue-db.attach()'
_this._masterInterval = options.masterInterval || enums.options.masterInterval;

@@ -60,3 +60,3 @@ _this._jobOptions = jobOptions();

_this._id = [require('os').hostname(), _this.db, _this.name, process.pid, uuid.v4()].join(':');
queueDb.attach(_this);
queueDb.attach(_this, cxn);
return _this;

@@ -63,0 +63,0 @@ }

{
"name": "rethinkdb-job-queue",
"version": "0.0.8",
"version": "0.1.0",
"description": "A persistent job or task queue backed by RethinkDB.",

@@ -50,4 +50,3 @@ "main": "index.js",

"debug": "^2.2.0",
"moment": "^2.14.1",
"rethinkdbdash": "^2.3.21",
"rethinkdbdash": "^2.3.23",
"uuid": "^2.0.2"

@@ -54,0 +53,0 @@ },

@@ -17,2 +17,18 @@ # Introduction

## Features
* Uses RethinkDB as the backing database.
* Connect to multiple databases.
* Create multiple queues.
* Supports distributed worker nodes.
* Uses the RethinkDB change feed for global queue events.
* Run jobs concurrently.
* Jobs can be configured for a delayed start.
* Jobs can be cancelled.
* Jobs can be retried if they fail.
* Supports priority jobs.
* Supports job progress updates.
* Jobs hold a rich history log.
* Promise based with minimal callbacks.
## Documentation

@@ -37,2 +53,4 @@

After installing [RethinkDB][rethinkdb-url] install the job queue using the following command.
```sh

@@ -47,8 +65,10 @@ npm install rethinkdb-job-queue --save

const Queue = require('rethinkdb-job-queue')
const options = {
const qOptions = {
name: 'Mathematics' // The queue and table name
}
const cxnOptions = {
db: 'JobQueue', // The name of the database in RethinkDB
name: 'Mathematics' // The name of the table in the database
}
const q = new Queue(options)
const q = new Queue(cxnOptions, qOptions)

@@ -81,3 +101,3 @@ const job = q.createJob()

// The following is not related to rethinkdb-job-queue.
// nodemailer configuration
// This is the nodemailer configuration
const nodemailer = require('nodemailer')

@@ -104,24 +124,28 @@ const transporter = nodemailer.createTransport({

// Queue options have defaults and are not required
const options = {
db: 'JobQueue', // The name of the database in RethinkDB
name: 'RegistrationEmail', // The name of the table in the database
host: 'localhost',
port: 28015,
masterInterval: 300, // Database review period in seconds
const qOptions = {
name: 'RegistrationEmail', // The queue and table name
masterInterval: 310000, // Database review period in milliseconds
changeFeed: true, // Enables events from the database table
concurrency: 100,
removeFinishedJobs: 30, // true, false, or number of days.
removeFinishedJobs: 2592000000, // true, false, or number of milliseconds
}
// Connection options have defaults and are not required
// You can replace these options with a rethinkdbdash driver object
const cxnOptions = {
host: 'localhost',
port: 28015,
db: 'JobQueue', // The name of the database in RethinkDB
}
// This is the main queue instantiation call
const q = new Queue(options)
const q = new Queue(cxnOptions, qOptions)
// Customizing the default job options for new jobs
const jobDefaults = {
q.jobOptions = {
priority: 'normal',
timeout: 300,
timeout: 300000,
retryMax: 3, // Four attempts, first then three retries
retryDelay: 600 // Time in seconds to delay retries
retryDelay: 600000 // Time in milliseconds to delay retries
}
q.jobOptions = jobDefaults

@@ -169,3 +193,2 @@ const job = q.createJob()

- The Promise library [Bluebird][bluebird-url] by [Petka Antonov][petka-url].
- The date management library [moment][moment-url].
- The [uuid][uuid-url] package.

@@ -192,3 +215,2 @@

[petka-url]: https://github.com/petkaantonov
[moment-url]: http://momentjs.com/
[uuid-url]: https://www.npmjs.com/package/uuid

@@ -195,0 +217,0 @@ [bithound-overall-image]: https://www.bithound.io/github/grantcarthew/node-rethinkdb-job-queue/badges/score.svg

const test = require('tape')
const Promise = require('bluebird')
const testError = require('./test-error')
const tError = require('./test-error')
const dbAssertDatabase = require('../src/db-assert-database')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const rethinkdbdash = require('rethinkdbdash')

@@ -10,5 +10,5 @@

const q = {
r: rethinkdbdash(testOptions.connection()),
db: testOptions.dbName,
name: testOptions.queueName,
r: rethinkdbdash(tOpts.cxn()),
db: tOpts.dbName,
name: tOpts.queueName,
id: 'mock:queue:id'

@@ -25,5 +25,5 @@ }

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const testError = require('./test-error')
const tError = require('./test-error')
const dbAssertIndex = require('../src/db-assert-index')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const rethinkdbdash = require('rethinkdbdash')

@@ -10,5 +10,5 @@

const q = {
r: rethinkdbdash(testOptions.connection()),
db: testOptions.dbName,
name: testOptions.queueName,
r: rethinkdbdash(tOpts.cxn()),
db: tOpts.dbName,
name: tOpts.queueName,
id: 'mock:queue:id'

@@ -25,5 +25,5 @@ }

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const testError = require('./test-error')
const tError = require('./test-error')
const dbAssertTable = require('../src/db-assert-table')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const rethinkdbdash = require('rethinkdbdash')

@@ -10,5 +10,5 @@

const q = {
r: rethinkdbdash(testOptions.connection()),
db: testOptions.dbName,
name: testOptions.queueName,
r: rethinkdbdash(tOpts.cxn()),
db: tOpts.dbName,
name: tOpts.queueName,
id: 'mock:queue:id'

@@ -25,5 +25,5 @@ }

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const testError = require('./test-error')
const tError = require('./test-error')
const dbAssert = require('../src/db-assert')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const rethinkdbdash = require('rethinkdbdash')

@@ -10,5 +10,5 @@

const q = {
r: rethinkdbdash(testOptions.connection()),
db: testOptions.dbName,
name: testOptions.queueName,
r: rethinkdbdash(tOpts.cxn()),
db: tOpts.dbName,
name: tOpts.queueName,
id: 'mock:queue:id'

@@ -25,5 +25,5 @@ }

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const dbResult = require('../src/db-result')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -15,9 +15,9 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const job1 = q.createJob()
job1.data = testData
job1.data = tData
const job2 = q.createJob()
job2.data = testData
job2.data = tData
const job3 = q.createJob()
job3.data = testData
job3.data = tData
const mockArray = [

@@ -116,5 +116,5 @@ job1.getCleanCopy(),

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const is = require('../src/is')
const testError = require('./test-error')
const moment = require('moment')
const tError = require('./test-error')
const datetime = require('../src/datetime')
const enums = require('../src/enums')
const queueAddJob = require('../src/queue-add-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const proxyquire = require('proxyquire').noCallThru()

@@ -27,3 +27,3 @@ const processStub = {}

const q = new Queue(testOptions.master(1))
const q = new Queue(tOpts.cxn(), tOpts.master(1000))
let reviewCount = 0

@@ -52,5 +52,5 @@

let retryCount0Job = q.createJob()
retryCount0Job.data = testData
retryCount0Job.data = tData
retryCount0Job.status = enums.status.active
retryCount0Job.dateStarted = moment().add(-400, 'seconds').toDate()
retryCount0Job.dateStarted = datetime.add.sec(new Date(), -400)
retryCount0Job.retryCount = 0

@@ -60,5 +60,5 @@ retryCount0Job.retryMax = 1

let retryCount1Job = q.createJob()
retryCount1Job.data = testData
retryCount1Job.data = tData
retryCount1Job.status = enums.status.active
retryCount1Job.dateStarted = moment().add(-400, 'seconds').toDate()
retryCount1Job.dateStarted = datetime.add.sec(new Date(), -400)
retryCount1Job.retryCount = 1

@@ -68,24 +68,24 @@ retryCount1Job.retryMax = 1

let completedJobPre = q.createJob()
completedJobPre.data = testData
completedJobPre.data = tData
completedJobPre.status = enums.status.completed
completedJobPre.dateStarted = moment().add(-179, 'days').toDate()
completedJobPre.dateFinished = moment().add(-179, 'days').toDate()
completedJobPre.dateStarted = datetime.add.days(new Date(), -179)
completedJobPre.dateFinished = datetime.add.days(new Date(), -179)
let completedJobPost = q.createJob()
completedJobPost.data = testData
completedJobPost.data = tData
completedJobPost.status = enums.status.completed
completedJobPost.dateStarted = moment().add(-181, 'days').toDate()
completedJobPost.dateFinished = moment().add(-181, 'days').toDate()
completedJobPost.dateStarted = datetime.add.days(new Date(), -181)
completedJobPost.dateFinished = datetime.add.days(new Date(), -181)
let cancelledJobPost = q.createJob()
cancelledJobPost.data = testData
cancelledJobPost.data = tData
cancelledJobPost.status = enums.status.terminated
cancelledJobPost.dateStarted = moment().add(-181, 'days').toDate()
cancelledJobPost.dateFinished = moment().add(-181, 'days').toDate()
cancelledJobPost.dateStarted = datetime.add.days(new Date(), -181)
cancelledJobPost.dateFinished = datetime.add.days(new Date(), -181)
let terminatedJobPost = q.createJob()
terminatedJobPost.data = testData
terminatedJobPost.data = tData
terminatedJobPost.status = enums.status.terminated
terminatedJobPost.dateStarted = moment().add(-181, 'days').toDate()
terminatedJobPost.dateFinished = moment().add(-181, 'days').toDate()
terminatedJobPost.dateStarted = datetime.add.days(new Date(), -181)
terminatedJobPost.dateFinished = datetime.add.days(new Date(), -181)

@@ -178,5 +178,5 @@ let jobs = [

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')

@@ -23,5 +23,5 @@

} catch (err) {
testError(err, module, t)
tError(err, module, t)
}
})
}
const test = require('tape')
const moment = require('moment')
const uuid = require('uuid')

@@ -9,8 +8,12 @@ const is = require('../src/is')

test('is', (t) => {
t.plan(51)
t.plan(57)
const ms = 5000
const tDate = new Date()
const earlyDate = new Date(tDate.getTime() - ms)
const laterDate = new Date(tDate.getTime() + ms)
const job = {
id: uuid.v4(),
queueId: 'queue id string',
dateCreated: moment().toDate(),
dateCreated: new Date(),
priority: enums.priority.normal,

@@ -39,3 +42,2 @@ status: enums.status.created

t.ok(is.date(new Date()), 'Is date true with new Date()')
t.notOk(is.date(moment()), 'Is date false with moment()')
t.notOk(is.date({}), 'Is date false with object')

@@ -66,3 +68,3 @@ t.ok(is.uuid(uuid.v4()), 'Is uuid true with uuid')

t.notOk(is.job(job), 'Is job false with invalid dateCreated')
job.dateCreated = moment().toDate()
job.dateCreated = new Date()
job.priority = 40

@@ -89,3 +91,10 @@ t.ok(is.job(job), 'Is job true with priority a number')

t.ok(is.terminated(job), 'Is terminated true with terminated status')
t.notOk(is.dateBefore(tDate, earlyDate), 'Is dateBefore false when after')
t.ok(is.dateBefore(tDate, laterDate), 'Is dateBefore true when before')
t.notOk(is.dateAfter(tDate, laterDate), 'Is dateAfter false when before')
t.ok(is.dateAfter(tDate, earlyDate), 'Is dateAfter true when after')
t.notOk(is.dateBetween(earlyDate, tDate, laterDate), 'Is dateBetween false when before dates')
t.notOk(is.dateBetween(laterDate, earlyDate, tDate), 'Is dateBetween false when after dates')
t.ok(is.dateBetween(tDate, earlyDate, laterDate), 'Is dateBetween true when between dates')
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const jobAddLog = require('../src/job-add-log')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,5 +17,5 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
let job = q.createJob()
job.data = testData
job.data = tData
let testLog

@@ -46,4 +46,4 @@ let extra = 'extra data'

t.equal(job.status, enums.status.added, 'New job added successfully')
testLog = job.createLog(testData)
testLog.data = testData
testLog = job.createLog(tData)
testLog.data = tData

@@ -63,4 +63,4 @@ // ---------- Add First Log Tests ----------

t.ok(jobWithLog1[0].log[1].retryCount >= 0, 'Log retryCount is valid')
t.equal(jobWithLog1[0].log[1].message, testData, 'Log 1 message is valid')
t.equal(jobWithLog1[0].log[1].data, testData, 'Log 1 data is valid')
t.equal(jobWithLog1[0].log[1].message, tData, 'Log 1 message is valid')
t.equal(jobWithLog1[0].log[1].data, tData, 'Log 1 data is valid')
testLog.extra = extra

@@ -81,4 +81,4 @@

t.ok(jobWithLog2[0].log[2].retryCount >= 0, 'Log retryCount is valid')
t.equal(jobWithLog2[0].log[2].message, testData, 'Log 2 message is valid')
t.equal(jobWithLog2[0].log[2].data, testData, 'Log 2 data is valid')
t.equal(jobWithLog2[0].log[2].message, tData, 'Log 2 message is valid')
t.equal(jobWithLog2[0].log[2].data, tData, 'Log 2 data is valid')
t.equal(jobWithLog2[0].log[2].extra, extra, 'Log 2 extra data is valid')

@@ -91,5 +91,5 @@ return q.reset()

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const jobCompleted = require('../src/job-completed')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,5 +17,5 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
let job = q.createJob()
job.data = testData
job.data = tData

@@ -54,3 +54,3 @@ // ---------- Event Handler Setup ----------

t.comment('job-completed: Job Completed')
return jobCompleted(savedJob[0], testData)
return jobCompleted(savedJob[0], tData)
}).then((completedIds) => {

@@ -72,3 +72,3 @@ t.equal(completedIds.length, 1, 'Job updated successfully')

t.ok(updatedJob[0].log[1].duration >= 0, 'Log duration is >= 0')
t.equal(updatedJob[0].log[1].data, testData, 'Log data is valid')
t.equal(updatedJob[0].log[1].data, tData, 'Log data is valid')

@@ -78,3 +78,3 @@ // ---------- Job Completed with Remove Test ----------

job = q.createJob()
job.data = testData
job.data = tData
return q.addJob(job)

@@ -84,3 +84,3 @@ }).then((savedJob) => {

q._removeFinishedJobs = true
return jobCompleted(savedJob[0], testData)
return jobCompleted(savedJob[0], tData)
}).then((removedIds) => {

@@ -97,5 +97,5 @@ t.equal(removedIds.length, 1, 'Job removed successfully')

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const jobFailed = require('../src/job-failed')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -54,3 +54,3 @@ // ---------- Event Handler Setup ----------

let job = q.createJob()
job.data = testData
job.data = tData
const err = new Error('Test error from job-failed tests')

@@ -159,3 +159,3 @@

job = q.createJob()
job.data = testData
job.data = tData
job.retryMax = 0

@@ -179,5 +179,5 @@ q._removeFinishedJobs = true

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const jobOptions = require('../src/job-options')

@@ -12,40 +13,40 @@

t.equal(to.priority, 'normal', 'Job default priority option is normal')
t.equal(to.timeout, 300, 'Job default timeout option is 300')
t.equal(to.retryMax, 3, 'Job default retryMax option is 3')
t.equal(to.retryDelay, 600, 'Job default retryDelay option is 600')
t.equal(to.timeout, enums.options.timeout, 'Job default timeout option is valid')
t.equal(to.retryMax, enums.options.retryMax, 'Job default retryMax option is 3')
t.equal(to.retryDelay, enums.options.retryDelay, 'Job default retryDelay option is 600')
to = jobOptions({
priority: 'high',
timeout: 100,
timeout: 100000,
retryMax: 8,
retryDelay: 200
retryDelay: 200000
}, to)
t.equal(to.priority, 'high', 'Job custom priority option is correct')
t.equal(to.timeout, 100, 'Job custom timeout option is correct')
t.equal(to.timeout, 100000, 'Job custom timeout option is correct')
t.equal(to.retryMax, 8, 'Job custom retryMax option is correct')
t.equal(to.retryDelay, 200, 'Job custom retryDelay option is correct')
t.equal(to.retryDelay, 200000, 'Job custom retryDelay option is correct')
to = jobOptions({ priority: 'lowest' }, to)
t.equal(to.priority, 'lowest', 'Job priority custom priority option is correct')
t.equal(to.timeout, 100, 'Job priority custom timeout option is correct')
t.equal(to.timeout, 100000, 'Job priority custom timeout option is correct')
t.equal(to.retryMax, 8, 'Job priority custom retryMax option is correct')
t.equal(to.retryDelay, 200, 'Job priority custom retryDelay option is correct')
t.equal(to.retryDelay, 200000, 'Job priority custom retryDelay option is correct')
to = jobOptions({ timeout: 700 }, to)
to = jobOptions({ timeout: 700000 }, to)
t.equal(to.priority, 'lowest', 'Job timeout custom priority option is correct')
t.equal(to.timeout, 700, 'Job timeout custom timeout option is correct')
t.equal(to.timeout, 700000, 'Job timeout custom timeout option is correct')
t.equal(to.retryMax, 8, 'Job timeout custom retryMax option is correct')
t.equal(to.retryDelay, 200, 'Job timeout custom retryDelay option is correct')
t.equal(to.retryDelay, 200000, 'Job timeout custom retryDelay option is correct')
to = jobOptions({ retryMax: 2 }, to)
t.equal(to.priority, 'lowest', 'Job retryMax custom priority option is correct')
t.equal(to.timeout, 700, 'Job retryMax custom timeout option is correct')
t.equal(to.timeout, 700000, 'Job retryMax custom timeout option is correct')
t.equal(to.retryMax, 2, 'Job retryMax custom retryMax option is correct')
t.equal(to.retryDelay, 200, 'Job retryMax custom retryDelay option is correct')
t.equal(to.retryDelay, 200000, 'Job retryMax custom retryDelay option is correct')
to = jobOptions({ retryDelay: 800 }, to)
to = jobOptions({ retryDelay: 800000 }, to)
t.equal(to.priority, 'lowest', 'Job retryDelay custom priority option is correct')
t.equal(to.timeout, 700, 'Job retryDelay custom timeout option is correct')
t.equal(to.timeout, 700000, 'Job retryDelay custom timeout option is correct')
t.equal(to.retryMax, 2, 'Job retryDelay custom retryMax option is correct')
t.equal(to.retryDelay, 800, 'Job retryDelay custom retryDelay option is correct')
t.equal(to.retryDelay, 800000, 'Job retryDelay custom retryDelay option is correct')

@@ -59,9 +60,9 @@ to = jobOptions({

t.equal(to.priority, 'lowest', 'Job invalid priority option is correct')
t.equal(to.timeout, 700, 'Job invalid timeout option is correct')
t.equal(to.timeout, 700000, 'Job invalid timeout option is correct')
t.equal(to.retryMax, 2, 'Job invalid retryMax option is correct')
t.equal(to.retryDelay, 800, 'Job invalid retryDelay option is correct')
t.equal(to.retryDelay, 800000, 'Job invalid retryDelay option is correct')
} catch (err) {
testError(err, module, t)
tError(err, module, t)
}
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const testError = require('./test-error')
const datetime = require('../src/datetime')
const is = require('../src/is')
const tError = require('./test-error')
const enums = require('../src/enums')
const jobProgress = require('../src/job-progress')
const testData = require('./test-options').testData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -16,6 +16,6 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const job = q.createJob()
job.timeout = 300
job.retryDelay = 600
job.timeout = enums.options.timeout
job.retryDelay = enums.options.retryDelay
job.retryCount = 0

@@ -55,4 +55,5 @@

t.ok(
moment(updatedJob[0].dateEnable).isBetween(moment(tempDateEnable),
moment().add(updatedJob[0].timeout + 2, 'seconds')),
is.dateBetween(updatedJob[0].dateEnable,
tempDateEnable,
datetime.add.ms(new Date(), updatedJob[0].timeout + 2000)),
'Job dateEnable updated successfully'

@@ -68,4 +69,5 @@ )

t.ok(
moment(updatedJob[0].dateEnable).isBetween(moment(tempDateEnable),
moment().add((updatedJob[0].timeout + 2) + updatedJob[0].retryDelay, 'seconds')),
is.dateBetween(updatedJob[0].dateEnable,
tempDateEnable,
datetime.add.ms(new Date(), updatedJob[0].timeout + 2000 + updatedJob[0].retryDelay)),
'Job dateEnable updated successfully'

@@ -112,5 +114,5 @@ )

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const Job = require('../src/job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,6 +17,6 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const newJob = new Job(q)
newJob.data = testData
newJob.data = tData
let savedJob

@@ -60,8 +60,8 @@

t.ok(is.uuid(newJob.id), 'New job has valid id')
t.equal(newJob.data, testData, 'New job data is valid')
t.equal(newJob.data, tData, 'New job data is valid')
t.equal(newJob.priority, 'normal', 'New job priority is normal')
t.equal(newJob.status, 'created', 'New job status is created')
t.equal(newJob.timeout, 300, 'New job timeout is 300')
t.equal(newJob.retryMax, 3, 'New job retryMax is 3')
t.equal(newJob.retryDelay, 600, 'New job retryDelay is 600')
t.equal(newJob.timeout, enums.options.timeout, 'New job timeout is valid')
t.equal(newJob.retryMax, enums.options.retryMax, 'New job retryMax is valid')
t.equal(newJob.retryDelay, enums.options.retryDelay, 'New job retryDelay is valid')
t.equal(newJob.progress, 0, 'New job progress is 0')

@@ -97,4 +97,4 @@ t.equal(newJob.queueId, q.id, 'New job queueId is valid')

t.comment('job: Create Log')
let log = newJob.createLog(testData)
log.data = testData
let log = newJob.createLog(tData)
log.data = tData
t.equal(typeof log, 'object', 'Job createLog returns a log object')

@@ -106,4 +106,4 @@ t.ok(is.date(log.date), 'Log date is a date')

t.ok(log.retryCount >= 0, 'Log retryCount is valid')
t.equal(log.message, testData, 'Log message is valid')
t.equal(log.data, testData, 'Log data is valid')
t.equal(log.message, tData, 'Log message is valid')
t.equal(log.data, tData, 'Log data is valid')

@@ -152,4 +152,4 @@ return q.reset().then((resetResult) => {

t.ok(jobsFromDb[0].log[1].retryCount >= 0, 'Log retryCount is valid')
t.equal(jobsFromDb[0].log[1].message, testData, 'Log message is valid')
t.equal(jobsFromDb[0].log[1].data, testData, 'Log data is valid')
t.equal(jobsFromDb[0].log[1].message, tData, 'Log message is valid')
t.equal(jobsFromDb[0].log[1].data, tData, 'Log data is valid')

@@ -173,5 +173,5 @@ // ---------- Set Job Progress ----------

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const queueAddJob = require('../src/queue-add-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
let addedCount = 0

@@ -106,5 +106,5 @@ function addedEventHandler (jobId) {

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const queueCancelJob = require('../src/queue-cancel-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -54,3 +54,3 @@ // ---------- Event Handler Setup ----------

t.comment('queue-cancel-job: Cancel Multiple Jobs')
return queueCancelJob(q, savedJobs, testData)
return queueCancelJob(q, savedJobs, tData)
}).then((cancelResult) => {

@@ -65,3 +65,3 @@ t.equal(cancelResult.length, jobsToCreate, 'Job cancelled successfully')

t.comment('queue-cancel-job: Cancel Single Job')
return queueCancelJob(q, singleJob[0], testData)
return queueCancelJob(q, singleJob[0], tData)
}).then((cancelledJobId) => {

@@ -80,3 +80,3 @@ t.ok(is.uuid(cancelledJobId[0]), 'Cancel Job returned Id')

t.ok(cancelledJob[0].log[1].retryCount >= 0, 'Log retryCount is valid')
t.equal(cancelledJob[0].log[1].message, testData, 'Log message is present')
t.equal(cancelledJob[0].log[1].message, tData, 'Log message is present')

@@ -90,3 +90,3 @@ // ---------- Cancel Multiple Jobs with Remove Tests ----------

t.equal(savedJobs.length, jobsToCreate, 'Jobs saved successfully')
return queueCancelJob(q, savedJobs, testData)
return queueCancelJob(q, savedJobs, tData)
}).then((cancelResult) => {

@@ -107,5 +107,5 @@ t.equal(cancelResult.length, 5, 'Cancel Job returned valid number of Ids')

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const is = require('../src/is')
const testError = require('./test-error')
const tError = require('./test-error')
const enums = require('../src/enums')
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -14,3 +14,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -157,5 +157,5 @@ function addedEventHandler (jobId) {

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,7 +5,7 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueDb = require('../src/queue-db')
const dbReview = require('../src/db-review')
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -64,3 +64,3 @@ let readyEventCount = 0

t.comment('queue-db: Attach with Change Feed and Master')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -88,3 +88,3 @@ return q.ready()

t.comment('queue-db: Attach with Change Feed NOT Master')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -112,3 +112,3 @@ return q.ready()

t.comment('queue-db: Attach with Master NOT Change Feed')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -136,3 +136,3 @@ return q.ready()

t.comment('queue-db: Attach without Change Feed or Master')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -160,3 +160,3 @@ return q.ready()

t.comment('queue-db: Attach with Change Feed and Master')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -189,3 +189,3 @@ return q.ready()

t.comment('queue-db: Attach with Change Feed NOT Master')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -199,5 +199,5 @@ return q.ready()

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,6 +5,6 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueDrop = require('../src/queue-drop')
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const rethinkdbdash = require('rethinkdbdash')

@@ -14,5 +14,5 @@

const mockQueue = {
r: rethinkdbdash(testOptions.connection()),
db: testOptions.dbName,
name: testOptions.queueName,
r: rethinkdbdash(tOpts.cxn()),
db: tOpts.dbName,
name: tOpts.queueName,
id: 'mock:queue:id'

@@ -25,3 +25,3 @@ }

let q = new Queue(testOptions.default())
let q = new Queue(tOpts.cxn(), tOpts.default())

@@ -87,5 +87,5 @@ let testEvents = false

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,7 +5,7 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueGetJob = require('../src/queue-get-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const job1 = q.createJob()

@@ -77,5 +77,5 @@ const job2 = q.createJob()

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueAddJob = require('../src/queue-add-job')
const queueGetNextJob = require('../src/queue-get-next-job')
const testData = require('./test-options').testData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -19,3 +18,3 @@ module.exports = function () {

// ---------- Creating Priority Test Jobs ----------
const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
q._concurrency = 1

@@ -50,3 +49,3 @@ let activeCount = 0

jobFailed.data = 'Failed'
jobFailed.dateCreated = moment().add(-1, 'seconds').toDate()
jobFailed.dateCreated = datetime.add.sec(new Date(), -1)
const jobActive = q.createJob({priority: 'normal'})

@@ -211,4 +210,4 @@ jobActive.status = enums.status.active

retryJobs = q.createJob(2).map(j => j)
retryJobs[0].dateEnable = moment().add(100, 'seconds').toDate()
retryJobs[1].dateEnable = moment().add(-100, 'seconds').toDate()
retryJobs[0].dateEnable = datetime.add.sec(new Date(), 100)
retryJobs[1].dateEnable = datetime.add.sec(new Date(), -100)
return q.addJob(retryJobs)

@@ -226,9 +225,9 @@ }).then((retrySavedJobs) => {

retryJobs[0].retryCount = 0
retryJobs[0].dateEnable = moment().add(-100, 'seconds').toDate()
retryJobs[0].dateEnable = datetime.add.sec(new Date(), -100)
retryJobs[1].retryCount = 1
retryJobs[1].dateEnable = moment().add(-200, 'seconds').toDate()
retryJobs[1].dateEnable = datetime.add.sec(new Date(), -200)
retryJobs[2].retryCount = 2
retryJobs[2].dateEnable = moment().add(-300, 'seconds').toDate()
retryJobs[2].dateEnable = datetime.add.sec(new Date(), -300)
retryJobs[3].retryCount = 3
retryJobs[3].dateEnable = moment().add(-400, 'seconds').toDate()
retryJobs[3].dateEnable = datetime.add.sec(new Date(), -400)
return q.addJob(retryJobs)

@@ -240,3 +239,4 @@ }).then((retrySavedJobs) => {

retryGet2.sort((a, b) => {
if (moment(a.dateEnable).isSameOrBefore(b.dateEnable)) return -1
if (is.dateBefore(a.dateEnable, b.dateEnable) ||
a.dateEnable === b.dateEnable) { return -1 }
return 1

@@ -247,5 +247,5 @@ })

t.ok(!ids.includes(retryJobs[0].id), 'Retrieved in dateEnable order successfully')
t.ok(moment().isBefore(retryGet2[0].dateEnable), 'dateEnable for first job is valid')
t.ok(moment(retryGet2[0].dateEnable).isBefore(retryGet2[1].dateEnable), 'dateEnable for second job is valid')
t.ok(moment(retryGet2[1].dateEnable).isBefore(retryGet2[2].dateEnable), 'dateEnable for third job is valid')
t.ok(is.dateBefore(new Date(), retryGet2[0].dateEnable), 'dateEnable for first job is valid')
t.ok(is.dateBefore(retryGet2[0].dateEnable, retryGet2[1].dateEnable), 'dateEnable for second job is valid')
t.ok(is.dateBefore(retryGet2[1].dateEnable, retryGet2[2].dateEnable), 'dateEnable for third job is valid')
return queueGetNextJob(q)

@@ -262,5 +262,5 @@ }).then((retryGet3) => {

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')
const proxyquire = require('proxyquire')

@@ -17,3 +17,3 @@ const processStub = {}

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
processStub.restart = function (q) {

@@ -79,5 +79,5 @@ t.ok(q.id, 'Queue process restart called')

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
const test = require('tape')
const Promise = require('bluebird')
const moment = require('moment')
const datetime = require('../src/datetime')
const is = require('../src/is')
const enums = require('../src/enums')
const testError = require('./test-error')
const testOptions = require('./test-options')
const testData = require('./test-options').testData
const tError = require('./test-error')
const tOpts = require('./test-options')
const tData = require('./test-options').tData
const queueProcess = require('../src/queue-process')

@@ -19,3 +19,3 @@ const dbReview = require('../src/db-review')

// ---------- Test Setup ----------
const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -151,6 +151,5 @@ let jobs

if (testTimes) {
const testDate = moment().add(
1 + job.timeout + (job.retryCount * job.retryDelay),
'seconds')
t.ok(moment(job.dateEnable).isBefore(testDate, 'seconds'), 'Job dateEnable is valid')
const testDate = datetime.add.ms(new Date(),
1000 + job.timeout + (job.retryCount * job.retryDelay))
t.ok(is.dateBefore(job.dateEnable, testDate), 'Job dateEnable is valid')
tryCount++

@@ -160,4 +159,4 @@ }

if (testCancel) {
const cancelErr = new Error(testData)
cancelErr.cancelJob = testData
const cancelErr = new Error(tData)
cancelErr.cancelJob = tData
next(cancelErr)

@@ -248,4 +247,4 @@ } else {

jobs = q.createJob()
jobs.timeout = 1
jobs.retryDelay = 2
jobs.timeout = 1000
jobs.retryDelay = 2000
jobDelay = 1500

@@ -270,3 +269,3 @@ testTimes = true // Enables handler time testing

jobs = q.createJob()
jobs.timeout = 1
jobs.timeout = 1000
jobs.retryMax = 0

@@ -301,3 +300,3 @@ jobDelay = 1500

jobs = q.createJob()
jobs.dateEnable = moment().add(2, 'seconds').toDate()
jobs.dateEnable = datetime.add.sec(new Date(), 2)
return q.addJob(jobs)

@@ -346,5 +345,5 @@ }).delay(500).then(() => {

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,7 +5,7 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueRemoveJob = require('../src/queue-remove-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
let jobs = q.createJob(3)

@@ -111,5 +111,5 @@

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,7 +5,7 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueReset = require('../src/queue-reset')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -17,3 +17,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const jobs = [

@@ -35,3 +35,3 @@ q.createJob(),

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
}

@@ -49,5 +49,5 @@ q.on(enums.status.reset, resetEventHandler)

return queueReset(q)
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,3 +5,3 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueStop = require('../src/queue-stop')

@@ -11,3 +11,3 @@ const queueDb = require('../src/queue-db')

const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -19,3 +19,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())

@@ -81,3 +81,3 @@ let testEvents = false

t.comment('queue-stop: Stop without Drain')
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -105,3 +105,3 @@ return q.ready()

}).then(() => {
return queueDb.attach(q)
return queueDb.attach(q, tOpts.cxn())
}).then(() => {

@@ -121,5 +121,5 @@ return q.ready()

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,8 +5,8 @@ const test = require('tape')

const enums = require('../src/enums')
const testError = require('./test-error')
const tError = require('./test-error')
const queueSummary = require('../src/queue-summary')
const queueAddJob = require('../src/queue-add-job')
const testData = require('./test-options').testData
const tData = require('./test-options').tData
const Queue = require('../src/queue')
const testOptions = require('./test-options')
const tOpts = require('./test-options')

@@ -18,3 +18,3 @@ module.exports = function () {

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const jobs = q.createJob(7).map(j => j)

@@ -46,5 +46,5 @@ jobs[0].status = enums.status.added

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}

@@ -5,5 +5,5 @@ const test = require('tape')

const is = require('../src/is')
const testError = require('./test-error')
const testOptions = require('./test-options')
const testData = require('./test-options').testData
const tError = require('./test-error')
const tOpts = require('./test-options')
const tData = require('./test-options').tData
const Queue = require('../src/queue')

@@ -16,3 +16,3 @@

let q = new Queue(testOptions.queueNameOnly())
let q = new Queue(tOpts.cxn(), tOpts.queueNameOnly())
let q2

@@ -145,7 +145,7 @@

t.ok(q, 'Queue created with default options')
t.equal(q.name, testOptions.queueName, 'Default queue name valid')
t.equal(q.name, tOpts.queueName, 'Default queue name valid')
t.ok(is.string(q.id), 'Queue id is valid')
t.equal(q.host, enums.options.host, 'Default host name is valid')
t.equal(q.port, enums.options.port, 'Default port is valid')
t.equal(q.db, testOptions.dbName, 'Default db name is valid')
t.equal(q.db, tOpts.dbName, 'Default db name is valid')
t.ok(is.function(q.r), 'Queue r valid')

@@ -317,3 +317,3 @@ t.ok(q.changeFeed, 'Queue change feed is enabled')

t.comment('queue: Drop')
q = new Queue(testOptions.queueNameOnly())
q = new Queue(tOpts.cxn(), tOpts.queueNameOnly())
testEvents = true

@@ -332,3 +332,3 @@ q.on(enums.status.dropped, droppedEventHandler)

t.comment('queue: Multi-Queue')
q = new Queue(testOptions.queueNameOnly())
q = new Queue(tOpts.cxn(), tOpts.queueNameOnly())
return q.ready()

@@ -338,3 +338,3 @@ }).then((ready) => {

addEventHandlers()
q2 = new Queue(testOptions.queueNameOnly())
q2 = new Queue(tOpts.cxn(), tOpts.queueNameOnly())
return q2.ready()

@@ -358,5 +358,5 @@ }).then((ready2) => {

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
// const Promise = require('bluebird')
// const enums = require('./enums.spec')
// const is = require('./is.spec')
// const datetime = require('./datetime.spec')
// const dbAssertDatabase = require('./db-assert-database.spec')

@@ -8,2 +9,3 @@ // const dbAssertTable = require('./db-assert-table.spec')

const dbAssert = require('./db-assert.spec')
// const dbDriver = require('./db-driver.spec')
// const dbResult = require('./db-result.spec')

@@ -14,3 +16,3 @@ // const dbReview = require('./db-review.spec')

// const jobParse = require('./job-parse.spec')
// const jobProgress = require('./job-progress.spec')
const jobProgress = require('./job-progress.spec')
// const jobCompleted = require('./job-completed.spec')

@@ -24,3 +26,3 @@ // const jobFailed = require('./job-failed.spec')

// const queueGetNextJob = require('./queue-get-next-job.spec')
const queueProcess = require('./queue-process.spec')
// const queueProcess = require('./queue-process.spec')
// const queueChange = require('./queue-change.spec')

@@ -37,3 +39,3 @@ // const queueInterruption = require('./queue-interruption.spec')

}).then(() => {
return queueProcess()
return jobProgress()
})

@@ -6,14 +6,13 @@ const dbHost = module.exports.dbHost = 'localhost'

module.exports.testData = 'The quick brown fox jumped over the lazy dog'
module.exports.tData = 'The quick brown fox jumped over the lazy dog'
const connection = module.exports.connection = function () {
module.exports.cxn = function () {
return {
host: dbHost,
port: dbPort,
db: dbName,
silent: true
db: dbName
}
}
module.exports.default = function () {
const opts = {
return {
name: queueName,

@@ -23,6 +22,5 @@ concurrency: 3,

}
return Object.assign(opts, connection())
}
module.exports.master = function (interval = 5) {
const opts = {
module.exports.master = function (interval = 5000) {
return {
name: queueName,

@@ -32,9 +30,7 @@ concurrency: 3,

}
return Object.assign(opts, connection())
}
module.exports.queueNameOnly = function () {
const opts = {
return {
name: queueName
}
return Object.assign(opts, connection())
}
const Promise = require('bluebird')
const enums = require('./enums.spec')
const is = require('./is.spec')
const datetime = require('./datetime.spec')
const dbDriver = require('./db-driver.spec')
const dbAssertDatabase = require('./db-assert-database.spec')

@@ -41,4 +43,6 @@ const dbAssertTable = require('./db-assert-table.spec')

return Promise.all([
dbDriver(),
enums(),
is(),
datetime(),
jobOptions(),

@@ -45,0 +49,0 @@ jobParse(),

const test = require('tape')
const Promise = require('bluebird')
// const moment = require('moment')
// const datetime = require('../src/datetime')
const enums = require('../src/enums')
// const is = require('../src/is')
const testError = require('./test-error')
const testData = require('./test-options').testData
const testOptions = require('./test-options')
const tError = require('./test-error')
const tData = require('./test-options').tData
const tOpts = require('./test-options')
const Queue = require('../src/queue')

@@ -16,3 +16,3 @@

const q = new Queue(testOptions.default())
const q = new Queue(tOpts.cxn(), tOpts.default())
const job = q.createJob()

@@ -48,5 +48,5 @@

return resolve(t.end())
}).catch(err => testError(err, module, t))
}).catch(err => tError(err, module, t))
})
})
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc