Ver código fonte

Merge pull request #26822 from overleaf/rh-current-plan-free-personal

Treat 'free - personal' plan as free in current plan widget

GitOrigin-RevId: 271aca9b1c97389357b7b7d107ed838ebbcada40
roo hutton 1 ano atrás
pai
commit
2b8a14c4d2

+ 6 - 2
services/web/frontend/js/features/project-list/components/current-plan-widget/current-plan-widget.tsx

@@ -14,8 +14,12 @@ function CurrentPlanWidget() {
   }
 
   const { type } = usersBestSubscription
-  const isFreePlan = type === 'free' || type === 'standalone-ai-add-on'
-  const isIndividualPlan = type === 'individual'
+  const isFreePlan =
+    type === 'free' ||
+    type === 'standalone-ai-add-on' ||
+    (type === 'individual' && usersBestSubscription.plan?.name === 'Free')
+  const isIndividualPlan =
+    type === 'individual' && !(usersBestSubscription.plan?.name === 'Free')
   const isGroupPlan = type === 'group'
   const isCommonsPlan = type === 'commons'
   const isPaused =

+ 27 - 0
services/web/test/frontend/features/project-list/components/current-plan-widget.test.tsx

@@ -83,6 +83,33 @@ describe('<CurrentPlanWidget />', function () {
     })
   })
 
+  describe('free plan with Personal plan name', function () {
+    beforeEach(function () {
+      window.metaAttributesCache.set('ol-usersBestSubscription', {
+        type: 'individual',
+        plan: {
+          name: 'Free',
+        },
+        subscription: {
+          planCode: 'personal',
+          name: 'Free',
+        },
+        featuresPageURL: '/features',
+      })
+
+      render(<CurrentPlanWidget />)
+    })
+
+    it('shows text and tooltip on mouseover', async function () {
+      const link = screen.getByRole('link', {
+        name: /you’re on the free plan/i,
+      })
+      fireEvent.mouseOver(link)
+
+      await screen.findByRole('tooltip', { name: freePlanTooltipMessage })
+    })
+  })
+
   describe('paid plan', function () {
     describe('trial', function () {
       const subscription = {