From 51aebb540cabbceb80428f61d45e69de90294573 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Tue, 23 Jan 2018 10:55:55 -0700 Subject: [PATCH] Removed display of users personal checklist on challenge tasks (#9837) --- ...challenges_challengeId_members_memberId.test.js | 14 ++++++++++++-- website/server/controllers/api-v3/members.js | 5 ++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js b/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js index c47e1d4ad8..f2568dfd44 100644 --- a/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js +++ b/test/api/v3/integration/challenges/GET-challenges_challengeId_members_memberId.test.js @@ -95,13 +95,23 @@ describe('GET /challenges/:challengeId/members/:memberId', () => { expect(memberProgress.tasks[0].challenge.taskId).to.equal(chalTasks[0]._id); }); - it('returns the tasks without the tags', async () => { + it('returns the tasks without the tags and checklist', async () => { let group = await generateGroup(user, {type: 'party', name: generateUUID()}); let challenge = await generateChallenge(user, group); let taskText = 'Test Text'; - await user.post(`/tasks/challenge/${challenge._id}`, [{type: 'habit', text: taskText}]); + await user.post(`/tasks/challenge/${challenge._id}`, [{ + type: 'todo', + text: taskText, + checklist: [ + { + _id: 123, + text: 'test', + }, + ], + }]); let memberProgress = await user.get(`/challenges/${challenge._id}/members/${user._id}`); expect(memberProgress.tasks[0]).not.to.have.key('tags'); + expect(memberProgress.tasks[0].checklist).to.eql([]); }); }); diff --git a/website/server/controllers/api-v3/members.js b/website/server/controllers/api-v3/members.js index dfa6780b1e..ae9201831f 100644 --- a/website/server/controllers/api-v3/members.js +++ b/website/server/controllers/api-v3/members.js @@ -413,7 +413,10 @@ api.getChallengeMemberProgress = { // manually call toJSON with minimize: true so empty paths aren't returned let response = member.toJSON({minimize: true}); delete response.challenges; - response.tasks = chalTasks.map(chalTask => chalTask.toJSON({minimize: true})); + response.tasks = chalTasks.map(chalTask => { + chalTask.checklist = []; // Clear checklists as they are private + return chalTask.toJSON({minimize: true}); + }); res.respond(200, response); }, };