From 39a112b605756d845ece6b4186c968206b2effaf Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Thu, 22 Jun 2017 15:21:09 -0600 Subject: [PATCH] Payments gem reset (#8712) * Added gem reset if user does not have date last updated set * Fixed login of adding updated date --- test/api/v3/unit/libs/cron.test.js | 7 +++++++ website/server/libs/cron.js | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/test/api/v3/unit/libs/cron.test.js b/test/api/v3/unit/libs/cron.test.js index 6382b85a3d..bf7017baa4 100644 --- a/test/api/v3/unit/libs/cron.test.js +++ b/test/api/v3/unit/libs/cron.test.js @@ -79,6 +79,13 @@ describe('cron', () => { expect(user.purchased.plan.gemsBought).to.equal(0); }); + it('resets plan.gemsBought on a new month if user does not have purchased.plan.dateUpdated', () => { + user.purchased.plan.gemsBought = 10; + user.purchased.plan.dateUpdated = undefined; + cron({user, tasksByType, daysMissed, analytics}); + expect(user.purchased.plan.gemsBought).to.equal(0); + }); + it('does not reset plan.gemsBought within the month', () => { let clock = sinon.useFakeTimers(moment().startOf('month').add(2, 'days').unix()); user.purchased.plan.dateUpdated = moment().startOf('month').toDate(); diff --git a/website/server/libs/cron.js b/website/server/libs/cron.js index 0c51587c54..0bc1cd94cc 100644 --- a/website/server/libs/cron.js +++ b/website/server/libs/cron.js @@ -206,8 +206,11 @@ export function cron (options = {}) { let perfect = true; // Reset Gold-to-Gems cap if it's the start of the month - if (user.purchased && user.purchased.plan && !moment(user.purchased.plan.dateUpdated).startOf('month').isSame(moment().startOf('month'))) { + let dateUpdatedFalse = !moment(user.purchased.plan.dateUpdated).startOf('month').isSame(moment().startOf('month')) || !user.purchased.plan.dateUpdated; + + if (user.purchased && user.purchased.plan && dateUpdatedFalse) { user.purchased.plan.gemsBought = 0; + if (!user.purchased.plan.dateUpdated) user.purchased.plan.dateUpdated = moment(); } if (user.isSubscribed()) {