Merge pull request #29036 from overleaf/ls-enable-individual-to-group-upgrade-in-production

Enable individual to group plan upgrade

GitOrigin-RevId: 3413c012bee320e4a4a61f829aaeff55e6116702
This commit is contained in:
Liangjun Song
2025-10-14 11:46:10 +01:00
committed by Copybot
parent 2724ebce49
commit e3a24037fb
2 changed files with 2 additions and 34 deletions

View File

@@ -36,20 +36,6 @@ function serializeMongooseObject(object) {
: object
}
async function isEligibleForGroupPlan(service, isInTrial) {
if (isInTrial) {
return false
}
if (service === 'recurly') {
return true
}
const [result] = await Modules.promises.hooks.fire(
'canUpgradeFromIndividualToGroup'
)
return result
}
async function buildUsersSubscriptionViewModel(user, locale = 'en') {
let {
personalSubscription,
@@ -310,10 +296,7 @@ async function buildUsersSubscriptionViewModel(user, locale = 'en') {
pausedAt: paymentRecord.subscription.pausePeriodStart,
remainingPauseCycles: paymentRecord.subscription.remainingPauseCycles,
isEligibleForPause,
isEligibleForGroupPlan: await isEligibleForGroupPlan(
paymentRecord.subscription.service,
isInTrial
),
isEligibleForGroupPlan: !isInTrial,
}
const isMonthlyCollaboratorPlan =

View File

@@ -723,20 +723,6 @@ describe('SubscriptionViewModelBuilder', function () {
})
describe('isEligibleForGroupPlan', function () {
it('is false for Stripe subscriptions', async function (ctx) {
ctx.paymentRecord.service = 'stripe-us'
ctx.Modules.promises.hooks.fire
.withArgs('canUpgradeFromIndividualToGroup')
.resolves([false])
const result =
await ctx.SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel(
ctx.user
)
assert.isFalse(
result.personalSubscription.payment.isEligibleForGroupPlan
)
})
it('is false when in trial', async function (ctx) {
const msIn24Hours = 24 * 60 * 60 * 1000
const tomorrow = new Date(Date.now() + msIn24Hours)
@@ -751,8 +737,7 @@ describe('SubscriptionViewModelBuilder', function () {
)
})
it('is true when not in trial and for a Recurly subscription', async function (ctx) {
ctx.paymentRecord.service = 'recurly'
it('is true when not in trial', async function (ctx) {
const result =
await ctx.SubscriptionViewModelBuilder.promises.buildUsersSubscriptionViewModel(
ctx.user