mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
Updated plan updated date if user has cancelled (#9773)
* Updated plan updated date if user has cancelled * Added test for plan with only date updated
This commit is contained in:
@@ -153,6 +153,24 @@ describe('payments/index', () => {
|
||||
expect(recipient.purchased.plan.dateUpdated).to.exist;
|
||||
});
|
||||
|
||||
it('sets plan.dateUpdated if it did exist but the user has cancelled', async () => {
|
||||
recipient.purchased.plan.dateUpdated = moment().subtract(1, 'days').toDate();
|
||||
recipient.purchased.plan.dateTerminated = moment().subtract(1, 'days').toDate();
|
||||
recipient.purchased.plan.customerId = 'testing';
|
||||
|
||||
await api.createSubscription(data);
|
||||
|
||||
expect(moment(recipient.purchased.plan.dateUpdated).date()).to.eql(moment().date());
|
||||
});
|
||||
|
||||
it('sets plan.dateUpdated if it did exist but the user has a corrupt plan', async () => {
|
||||
recipient.purchased.plan.dateUpdated = moment().subtract(1, 'days').toDate();
|
||||
|
||||
await api.createSubscription(data);
|
||||
|
||||
expect(moment(recipient.purchased.plan.dateUpdated).date()).to.eql(moment().date());
|
||||
});
|
||||
|
||||
it('sets plan.dateCreated if it did not previously exist', async () => {
|
||||
expect(recipient.purchased.plan.dateCreated).to.not.exist;
|
||||
|
||||
|
||||
@@ -307,7 +307,7 @@ api.createSubscription = async function createSubscription (data) {
|
||||
if (plan.customerId && !plan.dateTerminated) { // User has active plan
|
||||
plan.extraMonths += months;
|
||||
} else {
|
||||
if (!plan.dateUpdated) plan.dateUpdated = today;
|
||||
if (!recipient.isSubscribed() || !plan.dateUpdated) plan.dateUpdated = today;
|
||||
if (moment(plan.dateTerminated).isAfter()) {
|
||||
plan.dateTerminated = moment(plan.dateTerminated).add({months}).toDate();
|
||||
} else {
|
||||
|
||||
@@ -19,9 +19,8 @@ import paypalPayments from '../../libs/paypalPayments';
|
||||
const daysSince = common.daysSince;
|
||||
|
||||
schema.methods.isSubscribed = function isSubscribed () {
|
||||
let now = new Date();
|
||||
let plan = this.purchased.plan;
|
||||
|
||||
const now = new Date();
|
||||
const plan = this.purchased.plan;
|
||||
return plan && plan.customerId && (!plan.dateTerminated || moment(plan.dateTerminated).isAfter(now));
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user