From ea44af0929eb794f7ab3492d1bc4d6d608db0c61 Mon Sep 17 00:00:00 2001 From: Frank Maximus Date: Tue, 19 May 2020 16:39:48 +0200 Subject: [PATCH] buyMysterySet records every item in Amplitude. (#12197) * buyMysterySet records every item in Amplitude. Record only the mysterySet Fixes: #11705 * buyMysterySet records every item in Amplitude. Extend unit test Fixes: #11705 --- test/common/ops/buy/buyMysterySet.js | 9 +++++++- .../common/script/ops/buy/buyMysterySet.js | 21 ++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/test/common/ops/buy/buyMysterySet.js b/test/common/ops/buy/buyMysterySet.js index 6db89cf998..6a7a0650a3 100644 --- a/test/common/ops/buy/buyMysterySet.js +++ b/test/common/ops/buy/buyMysterySet.js @@ -88,7 +88,14 @@ describe('shared.ops.buyMysterySet', () => { expect(user.items.gear.owned).to.have.property('armor_mystery_301404', true); expect(user.items.gear.owned).to.have.property('head_mystery_301404', true); expect(user.items.gear.owned).to.have.property('eyewear_mystery_301404', true); - expect(analytics.track).to.be.called; + expect(analytics.track).to.be.calledOnce; + expect(analytics.track).to.be.calledWithMatch('acquire item', { + uuid: user._id, + itemKey: '301404', + itemType: 'Subscriber Gear', + acquireMethod: 'Hourglass', + category: 'behavior', + }); }); }); }); diff --git a/website/common/script/ops/buy/buyMysterySet.js b/website/common/script/ops/buy/buyMysterySet.js index 06ef1f9275..8c102d0d9b 100644 --- a/website/common/script/ops/buy/buyMysterySet.js +++ b/website/common/script/ops/buy/buyMysterySet.js @@ -26,18 +26,19 @@ export default function buyMysterySet (user, req = {}, analytics) { each(mysterySet.items, item => { user.items.gear.owned[item.key] = true; - if (analytics) { - analytics.track('acquire item', { - uuid: user._id, - itemKey: item.key, - itemType: 'Subscriber Gear', - acquireMethod: 'Hourglass', - category: 'behavior', - headers: req.headers, - }); - } }); + if (analytics) { + analytics.track('acquire item', { + uuid: user._id, + itemKey: mysterySet.key, + itemType: 'Subscriber Gear', + acquireMethod: 'Hourglass', + category: 'behavior', + headers: req.headers, + }); + } + // Here we need to trigger vue reactivity through reassign object user.items.gear.owned = { ...user.items.gear.owned,