mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
fix(subscription): correctly award 3mo bennies (#7596)
This commit is contained in:
@@ -80,21 +80,25 @@ describe('cron', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('decrements plan.consecutive.offset when offset is greater than 0', () => {
|
it('decrements plan.consecutive.offset when offset is greater than 0', () => {
|
||||||
user.purchased.plan.consecutive.offset = 1;
|
user.purchased.plan.consecutive.offset = 2;
|
||||||
cron({user, tasksByType, daysMissed, analytics});
|
cron({user, tasksByType, daysMissed, analytics});
|
||||||
expect(user.purchased.plan.consecutive.offset).to.equal(0);
|
expect(user.purchased.plan.consecutive.offset).to.equal(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('increments plan.consecutive.trinkets when user has reached a month that is a multiple of 3', () => {
|
it('increments plan.consecutive.trinkets when user has reached a month that is a multiple of 3', () => {
|
||||||
user.purchased.plan.consecutive.count = 5;
|
user.purchased.plan.consecutive.count = 5;
|
||||||
|
user.purchased.plan.consecutive.offset = 1;
|
||||||
cron({user, tasksByType, daysMissed, analytics});
|
cron({user, tasksByType, daysMissed, analytics});
|
||||||
expect(user.purchased.plan.consecutive.trinkets).to.equal(1);
|
expect(user.purchased.plan.consecutive.trinkets).to.equal(1);
|
||||||
|
expect(user.purchased.plan.consecutive.offset).to.equal(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('increments plan.consecutive.gemCapExtra when user has reached a month that is a multiple of 3', () => {
|
it('increments plan.consecutive.gemCapExtra when user has reached a month that is a multiple of 3', () => {
|
||||||
user.purchased.plan.consecutive.count = 5;
|
user.purchased.plan.consecutive.count = 5;
|
||||||
|
user.purchased.plan.consecutive.offset = 1;
|
||||||
cron({user, tasksByType, daysMissed, analytics});
|
cron({user, tasksByType, daysMissed, analytics});
|
||||||
expect(user.purchased.plan.consecutive.gemCapExtra).to.equal(5);
|
expect(user.purchased.plan.consecutive.gemCapExtra).to.equal(5);
|
||||||
|
expect(user.purchased.plan.consecutive.offset).to.equal(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('does not increment plan.consecutive.gemCapExtra when user has reached the gemCap limit', () => {
|
it('does not increment plan.consecutive.gemCapExtra when user has reached the gemCap limit', () => {
|
||||||
|
|||||||
@@ -57,9 +57,10 @@ function grantEndOfTheMonthPerks (user, now) {
|
|||||||
|
|
||||||
plan.consecutive.count++;
|
plan.consecutive.count++;
|
||||||
|
|
||||||
if (plan.consecutive.offset > 0) {
|
if (plan.consecutive.offset > 1) {
|
||||||
plan.consecutive.offset--;
|
plan.consecutive.offset--;
|
||||||
} else if (plan.consecutive.count % 3 === 0) { // every 3 months
|
} else if (plan.consecutive.count % 3 === 0) { // every 3 months
|
||||||
|
if (plan.consecutive.offset === 1) plan.consecutive.offset--;
|
||||||
plan.consecutive.trinkets++;
|
plan.consecutive.trinkets++;
|
||||||
plan.consecutive.gemCapExtra += 5;
|
plan.consecutive.gemCapExtra += 5;
|
||||||
if (plan.consecutive.gemCapExtra > 25) plan.consecutive.gemCapExtra = 25; // cap it at 50 (hard 25 limit + extra 25)
|
if (plan.consecutive.gemCapExtra > 25) plan.consecutive.gemCapExtra = 25; // cap it at 50 (hard 25 limit + extra 25)
|
||||||
|
|||||||
Reference in New Issue
Block a user