From 2dfcda068b2c49d09a5f698ed2f6bc0c5d1c02c1 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Mon, 11 Dec 2017 11:39:43 -0600 Subject: [PATCH] Added streak to export of challenge tasks (#9625) * Added streak to export of challenge tasks * Fixed tests --- .../GET-challenges_challengeId_export_csv.test.js | 10 +++++----- website/server/controllers/api-v3/challenges.js | 8 +++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId_export_csv.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId_export_csv.test.js index 2b98af9579..d82bc498ad 100644 --- a/test/api/v3/integration/challenges/GET-challenges_challengeId_export_csv.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_challengeId_export_csv.test.js @@ -64,11 +64,11 @@ describe('GET /challenges/:challengeId/export/csv', () => { let sortedMembers = _.sortBy([members[0], members[1], members[2], groupLeader], '_id'); let splitRes = res.split('\n'); - expect(splitRes[0]).to.equal('UUID,name,Task,Value,Notes,Task,Value,Notes'); - expect(splitRes[1]).to.equal(`${sortedMembers[0]._id},${sortedMembers[0].profile.name},habit:Task 1,0,,todo:Task 2,0,`); - expect(splitRes[2]).to.equal(`${sortedMembers[1]._id},${sortedMembers[1].profile.name},habit:Task 1,0,,todo:Task 2,0,`); - expect(splitRes[3]).to.equal(`${sortedMembers[2]._id},${sortedMembers[2].profile.name},habit:Task 1,0,,todo:Task 2,0,`); - expect(splitRes[4]).to.equal(`${sortedMembers[3]._id},${sortedMembers[3].profile.name},habit:Task 1,0,,todo:Task 2,0,`); + expect(splitRes[0]).to.equal('UUID,name,Task,Value,Notes,Streak,Task,Value,Notes,Streak'); + expect(splitRes[1]).to.equal(`${sortedMembers[0]._id},${sortedMembers[0].profile.name},habit:Task 1,0,,0,todo:Task 2,0,,0`); + expect(splitRes[2]).to.equal(`${sortedMembers[1]._id},${sortedMembers[1].profile.name},habit:Task 1,0,,0,todo:Task 2,0,,0`); + expect(splitRes[3]).to.equal(`${sortedMembers[2]._id},${sortedMembers[2].profile.name},habit:Task 1,0,,0,todo:Task 2,0,,0`); + expect(splitRes[4]).to.equal(`${sortedMembers[3]._id},${sortedMembers[3].profile.name},habit:Task 1,0,,0,todo:Task 2,0,,0`); expect(splitRes[5]).to.equal(''); }); }); diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js index 5ad31580f0..ffda202648 100644 --- a/website/server/controllers/api-v3/challenges.js +++ b/website/server/controllers/api-v3/challenges.js @@ -555,7 +555,7 @@ api.exportChallengeCsv = { 'challenge.id': challengeId, userId: {$exists: true}, }).sort({userId: 1, text: 1}) - .select('userId type text value notes') + .select('userId type text value notes streak') .lean().exec(), ]); @@ -570,7 +570,9 @@ api.exportChallengeCsv = { index++; } - resArray[index].push(`${task.type}:${task.text}`, task.value, task.notes); + const streak = task.streak || 0; + + resArray[index].push(`${task.type}:${task.text}`, task.value, task.notes, streak); }); // The first row is going to be UUID name Task Value Notes repeated n times for the n challenge tasks @@ -578,7 +580,7 @@ api.exportChallengeCsv = { return result.concat(array); }, []).sort(); resArray.unshift(['UUID', 'name']); - _.times(challengeTasks.length, () => resArray[0].push('Task', 'Value', 'Notes')); + _.times(challengeTasks.length, () => resArray[0].push('Task', 'Value', 'Notes', 'Streak')); res.set({ 'Content-Type': 'text/csv',