mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
Aded challenge migration sync (#8492)
* Aded challenge migration sync * Fixed async grouping * Mapped promises and added error catching * Added placholders for syncing specific challenges * Prvented overriding of attribute and createdAt
This commit is contained in:
committed by
Sabe Jones
parent
db9befde17
commit
21ad808cc1
@@ -104,6 +104,40 @@ describe('Challenge Model', () => {
|
||||
expect(updatedNewMember.tags[7].id).to.equal(challenge._id);
|
||||
expect(updatedNewMember.tags[7].name).to.equal(challenge.shortName);
|
||||
expect(syncedTask).to.exist;
|
||||
expect(syncedTask.attribute).to.eql('str');
|
||||
});
|
||||
|
||||
it('syncs a challenge to a user with the existing task', async () => {
|
||||
await challenge.addTasks([task]);
|
||||
|
||||
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.challenge.taskId === task._id;
|
||||
});
|
||||
|
||||
let createdAtBefore = syncedTask.createdAt;
|
||||
let attributeBefore = syncedTask.attribute;
|
||||
|
||||
let newTitle = 'newName';
|
||||
task.text = newTitle;
|
||||
task.attribute = 'int';
|
||||
await task.save();
|
||||
await challenge.syncToUser(leader);
|
||||
|
||||
updatedLeader = await User.findOne({_id: leader._id});
|
||||
updatedLeadersTasks = await Tasks.Task.find({_id: { $in: updatedLeader.tasksOrder[`${taskType}s`]}});
|
||||
|
||||
syncedTask = find(updatedLeadersTasks, function findNewTask (updatedLeadersTask) {
|
||||
return updatedLeadersTask.challenge.taskId === task._id;
|
||||
});
|
||||
|
||||
let createdAtAfter = syncedTask.createdAt;
|
||||
let attributeAfter = syncedTask.attribute;
|
||||
|
||||
expect(createdAtBefore).to.eql(createdAtAfter);
|
||||
expect(attributeBefore).to.eql(attributeAfter);
|
||||
expect(syncedTask.text).to.eql(newTitle);
|
||||
});
|
||||
|
||||
it('updates tasks to challenge and challenge members', async () => {
|
||||
|
||||
Reference in New Issue
Block a user