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,