From 181b33101e784ef0e0c1ebbf7d1e56f6f04d3679 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Tue, 10 Nov 2020 18:47:13 +0100 Subject: [PATCH] Challenge Won Notification improvements (#12762) * challenge won notification: add more info * update tests * use new notification on web, fixes #7716 * wip design * finalize design * fix markdown rendering --- ...lenges_challengeId_winner_winnerId.test.js | 10 +- .../components/achievements/wonChallenge.vue | 219 ++++++++++++------ .../components/inventory/equipment/index.vue | 26 ++- .../inventory/equipment/unequipDropdown.vue | 17 +- .../src/components/inventory/items/index.vue | 21 +- .../src/components/inventory/stable/index.vue | 4 +- .../client/src/components/notifications.vue | 2 +- .../client/src/components/settings/api.vue | 10 +- .../src/components/shared/closeIcon.vue | 15 +- .../src/components/shared/inventoryDrawer.vue | 14 +- .../client/src/components/static/contact.vue | 10 +- website/client/src/components/ui/drawer.vue | 6 +- .../client/src/components/ui/equipBadge.vue | 4 +- .../client/src/components/ui/filterGroup.vue | 2 +- .../src/components/ui/filterSidebar.vue | 7 +- website/client/src/components/ui/itemRows.vue | 2 +- .../src/components/ui/showMoreButton.vue | 5 +- website/common/locales/en/challenge.json | 4 +- website/server/models/challenge.js | 7 +- 19 files changed, 261 insertions(+), 124 deletions(-) diff --git a/test/api/v3/integration/challenges/POST-challenges_challengeId_winner_winnerId.test.js b/test/api/v3/integration/challenges/POST-challenges_challengeId_winner_winnerId.test.js index afae509347..53da2a5942 100644 --- a/test/api/v3/integration/challenges/POST-challenges_challengeId_winner_winnerId.test.js +++ b/test/api/v3/integration/challenges/POST-challenges_challengeId_winner_winnerId.test.js @@ -103,7 +103,15 @@ describe('POST /challenges/:challengeId/winner/:winnerId', () => { await expect(winningUser.sync()).to.eventually.have.nested.property('achievements.challenges').to.include(challenge.name); // 2 because winningUser just joined the challenge, which now awards an achievement expect(winningUser.notifications.length).to.equal(2); - expect(winningUser.notifications[1].type).to.equal('WON_CHALLENGE'); + + const notif = winningUser.notifications[1]; + expect(notif.type).to.equal('WON_CHALLENGE'); + expect(notif.data).to.eql({ + id: challenge._id, + name: challenge.name, + prize: challenge.prize, + leader: challenge.leader, + }); }); it('gives winner gems as reward', async () => { diff --git a/website/client/src/components/achievements/wonChallenge.vue b/website/client/src/components/achievements/wonChallenge.vue index 06c382e688..53ab170d63 100644 --- a/website/client/src/components/achievements/wonChallenge.vue +++ b/website/client/src/components/achievements/wonChallenge.vue @@ -2,101 +2,186 @@ -