Moved unlinkChallengeTasks to challenge model and added tests

This commit is contained in:
Keith Holliday
2016-03-04 11:45:21 -06:00
parent 20621b940e
commit bcc4d568df
5 changed files with 63 additions and 35 deletions

View File

@@ -122,6 +122,33 @@ describe('Challenge Model', () => {
expect(updatedUserTask.challenge.broken).to.equal('TASK_DELETED');
});
it('unlinks and deletes challenge tasks for a user when remove-all is specified', async () => {
await challenge.addTasks([task]);
await challenge.unlinkTasks(leader, 'remove-all');
let updatedLeader = await User.findOne({_id: leader._id});
let updatedLeadersTasks = await Tasks.Task.find({_id: { $in: updatedLeader.tasksOrder[`${taskType}s`]}});
let syncedTask = find(updatedLeadersTasks, function findNewTask (updatedLeadersTask) {
return updatedLeadersTask.type === taskValue.type && updatedLeadersTask.text === taskValue.text;
});
expect(syncedTask).to.not.exist;
});
it('unlinks and keeps challenge tasks for a user when keep-all is specified', async () => {
await challenge.addTasks([task]);
await challenge.unlinkTasks(leader, 'keep-all');
let updatedLeader = await User.findOne({_id: leader._id});
let updatedLeadersTasks = await Tasks.Task.find({_id: { $in: updatedLeader.tasksOrder[`${taskType}s`]}});
let syncedTask = find(updatedLeadersTasks, function findNewTask (updatedLeadersTask) {
return updatedLeadersTask.type === taskValue.type && updatedLeadersTask.text === taskValue.text;
});
expect(syncedTask).to.exist;
expect(syncedTask.challenge._id).to.be.empty;
});
});
});
});