mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-15 21:57:22 +01:00
Fix issue with validating android sub cancellation
This commit is contained in:
@@ -256,7 +256,7 @@ describe('Google Payments', () => {
|
|||||||
expirationDate,
|
expirationDate,
|
||||||
});
|
});
|
||||||
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
|
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
|
||||||
.returns([{ expirationDate: expirationDate.toDate() }]);
|
.returns([{ expirationDate: expirationDate.toDate(), autoRenewig: false }]);
|
||||||
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
|
iapIsValidatedStub = sinon.stub(iap, 'isValidated')
|
||||||
.returns(true);
|
.returns(true);
|
||||||
|
|
||||||
@@ -325,5 +325,25 @@ describe('Google Payments', () => {
|
|||||||
headers,
|
headers,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not cancel a user subscription with autorenew', async () => {
|
||||||
|
iapGetPurchaseDataStub = sinon.stub(iap, 'getPurchaseData')
|
||||||
|
.returns([{ autoRenewig: true }]);
|
||||||
|
await googlePayments.cancelSubscribe(user, headers);
|
||||||
|
|
||||||
|
expect(iapSetupStub).to.be.calledOnce;
|
||||||
|
expect(iapValidateStub).to.be.calledOnce;
|
||||||
|
expect(iapValidateStub).to.be.calledWith(iap.GOOGLE, {
|
||||||
|
data: receipt,
|
||||||
|
signature,
|
||||||
|
});
|
||||||
|
expect(iapIsValidatedStub).to.be.calledOnce;
|
||||||
|
expect(iapIsValidatedStub).to.be.calledWith({
|
||||||
|
expirationDate,
|
||||||
|
});
|
||||||
|
expect(iapGetPurchaseDataStub).to.be.calledOnce;
|
||||||
|
|
||||||
|
expect(paymentCancelSubscriptionSpy).to.not.be.called;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ api.cancelSubscribe = async function cancelSubscribe (user, headers) {
|
|||||||
if (purchases.length === 0) throw new NotAuthorized(this.constants.RESPONSE_INVALID_RECEIPT);
|
if (purchases.length === 0) throw new NotAuthorized(this.constants.RESPONSE_INVALID_RECEIPT);
|
||||||
const subscriptionData = purchases[0];
|
const subscriptionData = purchases[0];
|
||||||
// Check to make sure the sub isn't active anymore.
|
// Check to make sure the sub isn't active anymore.
|
||||||
if (subscriptionData.autoRenews) return;
|
if (subscriptionData.autoRenewing === false) return;
|
||||||
|
|
||||||
dateTerminated = new Date(Number(subscriptionData.expirationDate));
|
dateTerminated = new Date(Number(subscriptionData.expirationDate));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
Reference in New Issue
Block a user