From c43ca62bc48c7b632f33eb764277639f08059206 Mon Sep 17 00:00:00 2001 From: Keith Holliday Date: Tue, 14 Nov 2017 16:55:08 -0700 Subject: [PATCH] Added check for balance with respect to quantity (#9469) --- test/common/ops/purchase.js | 19 ++++++++++++++++++- website/common/script/ops/purchase.js | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/test/common/ops/purchase.js b/test/common/ops/purchase.js index d1b78a3460..6431d02ba0 100644 --- a/test/common/ops/purchase.js +++ b/test/common/ops/purchase.js @@ -231,13 +231,30 @@ describe('shared.ops.purchase', () => { context('bulk purchase', () => { let userGemAmount = 10; - before(() => { + beforeEach(() => { user.balance = userGemAmount; user.stats.gp = goldPoints; user.purchased.plan.gemsBought = 0; user.purchased.plan.customerId = 'customer-id'; }); + it('errors when user does not have enough gems', (done) => { + user.balance = 1; + let type = 'eggs'; + let key = 'TigerCub'; + + try { + purchase(user, { + params: {type, key}, + quantity: 2, + }); + } catch (err) { + expect(err).to.be.an.instanceof(NotAuthorized); + expect(err.message).to.equal(i18n.t('notEnoughGems')); + done(); + } + }); + it('makes bulk purchases of gems', () => { let [, message] = purchase(user, { params: {type: 'gems', key: 'gem'}, diff --git a/website/common/script/ops/purchase.js b/website/common/script/ops/purchase.js index 7cb74c804e..428b167d92 100644 --- a/website/common/script/ops/purchase.js +++ b/website/common/script/ops/purchase.js @@ -138,7 +138,7 @@ module.exports = function purchase (user, req = {}, analytics) { throw new NotAuthorized(i18n.t('messageNotAvailable', req.language)); } - if (!user.balance || user.balance < price) { + if (!user.balance || user.balance < price * quantity) { throw new NotAuthorized(i18n.t('notEnoughGems', req.language)); }