mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
Drag challenge tasks (#12204)
* Allow challenge tasks to be draggable by leaders and admins * Drag challenge tasks, ensure they're ordered * Ensure group tasks are ordered properly, make draggable * Add tests, fix broken tests * Resolve merge conflict * Remove console.log() * Address code review comments * Code review fixes * Fix lint * Fix importing * taskManager * Lint * Fix collapseChecklist test Co-authored-by: Sabe Jones <sabrecat@gmail.com>
This commit is contained in:
@@ -17,10 +17,6 @@ describe('GET /tasks/group/:groupId', () => {
|
||||
up: false,
|
||||
down: true,
|
||||
},
|
||||
todo: {
|
||||
text: 'test todo',
|
||||
type: 'todo',
|
||||
},
|
||||
daily: {
|
||||
text: 'test daily',
|
||||
type: 'daily',
|
||||
@@ -28,6 +24,10 @@ describe('GET /tasks/group/:groupId', () => {
|
||||
everyX: 5,
|
||||
startDate: new Date(),
|
||||
},
|
||||
todo: {
|
||||
text: 'test todo',
|
||||
type: 'todo',
|
||||
},
|
||||
reward: {
|
||||
text: 'test reward',
|
||||
type: 'reward',
|
||||
@@ -78,4 +78,35 @@ describe('GET /tasks/group/:groupId', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('maintains group task order', async () => {
|
||||
const orderedTasks = {};
|
||||
Object.entries(tasksToTest).forEach(async (taskType, taskValue) => {
|
||||
const results = [];
|
||||
for (let i = 0; i < 5; i += 1) {
|
||||
results.push(user.post(`/tasks/group/${group._id}`, taskValue));
|
||||
}
|
||||
const taskList = await Promise.all(results);
|
||||
await user.post(`/tasks/${taskList[0]._id}/move/to/3`);
|
||||
|
||||
const firstTask = taskList.unshift();
|
||||
taskList.splice(3, 0, firstTask);
|
||||
|
||||
orderedTasks[taskType] = taskList;
|
||||
});
|
||||
|
||||
const results = await user.get(`/tasks/group/${group._id}`);
|
||||
const resultTasks = {};
|
||||
|
||||
results.forEach(result => {
|
||||
if (!resultTasks[result.type]) {
|
||||
resultTasks[result.type] = [];
|
||||
}
|
||||
resultTasks[result.type].push(result);
|
||||
});
|
||||
|
||||
Object.entries(orderedTasks).forEach((taskType, taskList) => {
|
||||
expect(resultTasks[taskType]).to.eql(taskList);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user