Make tasks indexed by id instead of type
The caas migrate logic is broken at this point until it uses new task framework
This commit is contained in:
@@ -23,11 +23,11 @@ var async = require('async'),
|
||||
tasks = require('../tasks.js');
|
||||
|
||||
function createBackup(callback) {
|
||||
tasks.startTask(tasks.TASK_BACKUP, [], { username: 'test' }, function (error) { // this call does not wait for the backup!
|
||||
tasks.startTask(tasks.TASK_BACKUP, [], { username: 'test' }, function (error, taskId) { // this call does not wait for the backup!
|
||||
if (error) return callback(error);
|
||||
|
||||
function waitForBackup() {
|
||||
tasks.get(tasks.TASK_BACKUP, function (error, p) {
|
||||
tasks.get(taskId, function (error, p) {
|
||||
if (error) return callback(error);
|
||||
|
||||
if (p.percent !== 100) return setTimeout(waitForBackup, 1000);
|
||||
|
||||
@@ -21,6 +21,7 @@ var appdb = require('../appdb.js'),
|
||||
mailboxdb = require('../mailboxdb.js'),
|
||||
maildb = require('../maildb.js'),
|
||||
settingsdb = require('../settingsdb.js'),
|
||||
taskdb = require('../taskdb.js'),
|
||||
tokendb = require('../tokendb.js'),
|
||||
userdb = require('../userdb.js'),
|
||||
_ = require('underscore');
|
||||
@@ -1098,6 +1099,56 @@ describe('database', function () {
|
||||
});
|
||||
});
|
||||
|
||||
describe('tasks', function () {
|
||||
let taskId;
|
||||
|
||||
let TASK = {
|
||||
type: 'tasktype',
|
||||
args: { x: 1 },
|
||||
percent: 0,
|
||||
message: 'starting task'
|
||||
};
|
||||
|
||||
it('add succeeds', function (done) {
|
||||
taskdb.add(TASK, function (error, id) {
|
||||
expect(error).to.be(null);
|
||||
expect(id).to.be.ok();
|
||||
taskId = id;
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('get succeeds', function (done) {
|
||||
taskdb.get(taskId, function (error, task) {
|
||||
expect(error).to.be(null);
|
||||
expect(_.pick(task, Object.keys(TASK))).to.eql(TASK);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('update succeeds', function (done) {
|
||||
TASK.percent = 34;
|
||||
TASK.message = 'almost ther';
|
||||
taskdb.update(taskId, { percent: TASK.percent, message: TASK.message }, function (error) {
|
||||
expect(error).to.be(null);
|
||||
taskdb.get(taskId, function (error, task) {
|
||||
expect(_.pick(task, Object.keys(TASK))).to.eql(TASK);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('del succeeds', function (done) {
|
||||
taskdb.del(taskId, function (error) {
|
||||
expect(error).to.be(null);
|
||||
taskdb.get(taskId, function (error) {
|
||||
expect(error.reason).to.be(DatabaseError.NOT_FOUND);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('client', function () {
|
||||
var CLIENT_0 = {
|
||||
id: 'cid-0',
|
||||
|
||||
Reference in New Issue
Block a user