Browse Source

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

Enable individual to group plan upgrade

GitOrigin-RevId: 3413c012bee320e4a4a61f829aaeff55e6116702
Liangjun Song 10 months ago
parent
commit
e3a24037fb

+ 1 - 18
services/web/app/src/Features/Subscription/SubscriptionViewModelBuilder.mjs

@@ -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 =

+ 1 - 16
services/web/test/unit/src/Subscription/SubscriptionViewModelBuilder.test.mjs

@@ -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