CartoDB-SQL-API/test/unit/batch/job_queue.js

48 lines
1.5 KiB
JavaScript

var JobQueue = require('../../../batch/job_queue');
var assert = require('assert');
describe('batch API job queue', function () {
beforeEach(function () {
this.metadataBackend = {
redisCmd: function () {
var callback = arguments[arguments.length -1];
process.nextTick(function () {
callback(null, 'irrelevantJob');
});
},
redisMultiCmd: function () {
var callback = arguments[arguments.length -1];
process.nextTick(function () {
callback(null, 'irrelevantJob');
});
}
};
this.jobPublisher = {
publish: function () {}
};
this.jobQueue = new JobQueue(this.metadataBackend, this.jobPublisher);
});
it('.enqueue() should enqueue the provided job', function (done) {
this.jobQueue.enqueue('irrelevantJob', 'irrelevantHost', function (err) {
assert.ok(!err);
done();
});
});
it('.dequeue() should dequeue the next job', function (done) {
this.jobQueue.dequeue('irrelevantHost', function (err) {
assert.ok(!err);
done();
});
});
it('.enqueueFirst() should dequeue the next job', function (done) {
this.jobQueue.enqueueFirst('irrelevantJob', 'irrelevantHost', function (err) {
assert.ok(!err);
done();
});
});
});