diff --git a/test/api/unit/libs/payments/apple.test.js b/test/api/unit/libs/payments/apple.test.js index 1e8e4f4fcc..217a307d0b 100644 --- a/test/api/unit/libs/payments/apple.test.js +++ b/test/api/unit/libs/payments/apple.test.js @@ -15,7 +15,7 @@ describe('Apple Payments', () => { describe('verifyPurchase', () => { let sku; let user; let token; let receipt; let headers; - let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let paymentBuyGemsStub; let + let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let paymentBuySkuStub; let iapGetPurchaseDataStub; let validateGiftMessageStub; beforeEach(() => { @@ -36,7 +36,7 @@ describe('Apple Payments', () => { productId: 'com.habitrpg.ios.Habitica.21gems', transactionId: token, }]); - paymentBuyGemsStub = sinon.stub(payments, 'buySkuItem').resolves({}); + paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({}); validateGiftMessageStub = sinon.stub(gems, 'validateGiftMessage'); }); @@ -94,7 +94,7 @@ describe('Apple Payments', () => { productId: 'badProduct', transactionId: token, }]); - paymentBuyGemsStub.restore(); + paymentBuySkuStub.restore(); await expect(applePayments.verifyPurchase({ user, receipt, headers })) .to.eventually.be.rejected.and.to.eql({ @@ -103,7 +103,7 @@ describe('Apple Payments', () => { message: applePayments.constants.RESPONSE_INVALID_ITEM, }); - paymentBuyGemsStub = sinon.stub(payments, 'buySkuItem').resolves({}); + paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({}); user.canGetGems.restore(); }); @@ -150,8 +150,8 @@ describe('Apple Payments', () => { expect(iapGetPurchaseDataStub).to.be.calledOnce; expect(validateGiftMessageStub).to.not.be.called; - expect(paymentBuyGemsStub).to.be.calledOnce; - expect(paymentBuyGemsStub).to.be.calledWith({ + expect(paymentBuySkuStub).to.be.calledOnce; + expect(paymentBuySkuStub).to.be.calledWith({ user, gift: undefined, paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE, @@ -189,18 +189,16 @@ describe('Apple Payments', () => { expect(validateGiftMessageStub).to.be.calledOnce; expect(validateGiftMessageStub).to.be.calledWith(gift, user); - expect(paymentBuyGemsStub).to.be.calledOnce; - expect(paymentBuyGemsStub).to.be.calledWith({ + expect(paymentBuySkuStub).to.be.calledOnce; + expect(paymentBuySkuStub).to.be.calledWith({ user, - paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE, - headers, gift: { - type: 'gems', - gems: { amount: 4 }, - member: sinon.match({ _id: receivingUser._id }), uuid: receivingUser._id, + member: sinon.match({ _id: receivingUser._id }), }, - gemsBlock: common.content.gems['4gems'], + paymentMethod: applePayments.constants.PAYMENT_METHOD_APPLE, + sku: 'com.habitrpg.ios.Habitica.4gems', + headers, }); }); }); diff --git a/test/api/unit/libs/payments/google.test.js b/test/api/unit/libs/payments/google.test.js index 34e3d9936f..eb9b3574ba 100644 --- a/test/api/unit/libs/payments/google.test.js +++ b/test/api/unit/libs/payments/google.test.js @@ -14,9 +14,9 @@ describe('Google Payments', () => { describe('verifyPurchase', () => { let sku; let user; let token; let receipt; let signature; let - headers; const gemsBlock = common.content.gems['21gems']; + headers; let iapSetupStub; let iapValidateStub; let iapIsValidatedStub; let - paymentBuyGemsStub; let validateGiftMessageStub; + paymentBuySkuStub; let validateGiftMessageStub; beforeEach(() => { sku = 'com.habitrpg.android.habitica.iap.21gems'; @@ -27,11 +27,10 @@ describe('Google Payments', () => { iapSetupStub = sinon.stub(iap, 'setup') .resolves(); - iapValidateStub = sinon.stub(iap, 'validate') - .resolves({}); + iapValidateStub = sinon.stub(iap, 'validate').resolves({ productId: sku }); iapIsValidatedStub = sinon.stub(iap, 'isValidated') .returns(true); - paymentBuyGemsStub = sinon.stub(payments, 'buySkuItem').resolves({}); + paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({}); validateGiftMessageStub = sinon.stub(gems, 'validateGiftMessage'); }); @@ -60,8 +59,10 @@ describe('Google Payments', () => { it('should throw an error if productId is invalid', async () => { receipt = `{"token": "${token}", "productId": "invalid"}`; + iapValidateStub.restore(); + iapValidateStub = sinon.stub(iap, 'validate').resolves({}); - paymentBuyGemsStub.restore(); + paymentBuySkuStub.restore(); await expect(googlePayments.verifyPurchase({ user, receipt, signature, headers, })) @@ -70,7 +71,7 @@ describe('Google Payments', () => { name: 'BadRequest', message: googlePayments.constants.RESPONSE_INVALID_ITEM, }); - paymentBuyGemsStub = sinon.stub(payments, 'buySkuItem').resolves({}); + paymentBuySkuStub = sinon.stub(payments, 'buySkuItem').resolves({}); }); it('should throw an error if user cannot purchase gems', async () => { @@ -103,15 +104,17 @@ describe('Google Payments', () => { signature, }); expect(iapIsValidatedStub).to.be.calledOnce; - expect(iapIsValidatedStub).to.be.calledWith({}); + expect(iapIsValidatedStub).to.be.calledWith( + { productId: sku }, + ); - expect(paymentBuyGemsStub).to.be.calledOnce; - expect(paymentBuyGemsStub).to.be.calledWith({ + expect(paymentBuySkuStub).to.be.calledOnce; + expect(paymentBuySkuStub).to.be.calledWith({ user, - paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE, - gemsBlock, - headers, gift: undefined, + paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE, + sku, + headers, }); expect(user.canGetGems).to.be.calledOnce; user.canGetGems.restore(); @@ -136,20 +139,20 @@ describe('Google Payments', () => { signature, }); expect(iapIsValidatedStub).to.be.calledOnce; - expect(iapIsValidatedStub).to.be.calledWith({}); + expect(iapIsValidatedStub).to.be.calledWith( + { productId: sku }, + ); - expect(paymentBuyGemsStub).to.be.calledOnce; - expect(paymentBuyGemsStub).to.be.calledWith({ + expect(paymentBuySkuStub).to.be.calledOnce; + expect(paymentBuySkuStub).to.be.calledWith({ user, - paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE, - gemsBlock, - headers, gift: { - type: 'gems', - gems: { amount: 21 }, - member: sinon.match({ _id: receivingUser._id }), uuid: receivingUser._id, + member: sinon.match({ _id: receivingUser._id }), }, + paymentMethod: googlePayments.constants.PAYMENT_METHOD_GOOGLE, + sku, + headers, }); }); });