fix tasks updating and reminders tests

This commit is contained in:
Matteo Pagliazzi
2016-04-03 22:11:22 +02:00
parent f3abdaf692
commit c3945de098
4 changed files with 7 additions and 30 deletions

View File

@@ -152,14 +152,14 @@ describe('POST /tasks/user', () => {
text: 'test habit',
type: 'habit',
reminders: [
{id: id1, startDate: new Date(), time: new Date()},
{_id: id1, startDate: new Date(), time: new Date()},
],
});
expect(task.reminders).to.be.an('array');
expect(task.reminders.length).to.eql(1);
expect(task.reminders[0]).to.be.an('object');
expect(task.reminders[0].id).to.eql(id1);
expect(task.reminders[0]._id).to.eql(id1);
expect(task.reminders[0].startDate).to.be.a('string'); // json doesn't have dates
expect(task.reminders[0].time).to.be.a('string');
});

View File

@@ -80,14 +80,14 @@ describe('PUT /tasks/:id', () => {
let savedDaily = await user.put(`/tasks/${daily._id}`, {
reminders: [
{id: id1, time: new Date(), startDate: new Date()},
{id: id2, time: new Date(), startDate: new Date()},
{_id: id1, time: new Date(), startDate: new Date()},
{_id: id2, time: new Date(), startDate: new Date()},
],
});
expect(savedDaily.reminders.length).to.equal(2);
expect(savedDaily.reminders[0].id).to.equal(id1);
expect(savedDaily.reminders[1].id).to.equal(id2);
expect(savedDaily.reminders[0]._id).to.equal(id1);
expect(savedDaily.reminders[1]._id).to.equal(id2);
});
});

View File

@@ -304,24 +304,7 @@ api.updateTask = {
throw new NotFound(res.t('taskNotFound'));
}
// If reminders are updated -> replace the original ones
if (req.body.reminders) {
task.reminders = req.body.reminders;
delete req.body.reminders;
}
// If checklist is updated -> replace the original one
if (req.body.checklist) {
task.checklist = req.body.checklist;
delete req.body.checklist;
}
// If tags are updated -> replace the original ones
if (req.body.tags) {
task.tags = req.body.tags;
delete req.body.tags;
}
Tasks.Task.sanitize(req.body);
// TODO we have to convert task to an object because otherwise things don't get merged correctly. Bad for performances?
// TODO regarding comment above, make sure other models with nested fields are using this trick too
_.assign(task, common.ops.updateTask(task.toObject(), req));

View File

@@ -60,12 +60,6 @@ TaskSchema.statics.sanitizeCreate = function sanitizeCreate (createObj) {
return this.sanitize(createObj, noCreate);
};
// A list of additional fields that cannot be updated (but can be set on creation)
let noUpdate = ['_id', 'type'];
TaskSchema.statics.sanitizeUpdate = function sanitizeUpdate (updateObj) {
return this.sanitize(updateObj, noUpdate);
};
// Sanitize checklist objects (disallowing _id)
TaskSchema.statics.sanitizeChecklist = function sanitizeChecklist (checklistObj) {
delete checklistObj._id;