diff --git a/services/web/frontend/js/features/subscription/components/dashboard/states/active/cancel-plan/cancel-subscription.tsx b/services/web/frontend/js/features/subscription/components/dashboard/states/active/cancel-plan/cancel-subscription.tsx index c50666b3fc..986d7b6716 100644 --- a/services/web/frontend/js/features/subscription/components/dashboard/states/active/cancel-plan/cancel-subscription.tsx +++ b/services/web/frontend/js/features/subscription/components/dashboard/states/active/cancel-plan/cancel-subscription.tsx @@ -164,7 +164,9 @@ export function CancelSubscription() { const showDowngrade = showDowngradeOption( personalSubscription.plan.planCode, personalSubscription.plan.groupPlan, - personalSubscription.recurly.trial_ends_at + personalSubscription.recurly.trial_ends_at, + personalSubscription.recurly.pausedAt, + personalSubscription.recurly.remainingPauseCycles ) const planToDowngradeTo = plans.find( plan => plan.planCode === planCodeToDowngradeTo diff --git a/services/web/frontend/js/features/subscription/util/show-downgrade-option.ts b/services/web/frontend/js/features/subscription/util/show-downgrade-option.ts index 95d32d6181..283823f481 100644 --- a/services/web/frontend/js/features/subscription/util/show-downgrade-option.ts +++ b/services/web/frontend/js/features/subscription/util/show-downgrade-option.ts @@ -1,12 +1,17 @@ +import { Nullable } from '../../../../../types/utils' import isInFreeTrial from './is-in-free-trial' import isMonthlyCollaboratorPlan from './is-monthly-collaborator-plan' export default function showDowngradeOption( planCode: string, isGroupPlan?: boolean, - trialEndsAt?: string | null + trialEndsAt?: string | null, + pausedAt?: Nullable, + remainingPauseCycles?: Nullable ) { return ( + !pausedAt && + !remainingPauseCycles && isMonthlyCollaboratorPlan(planCode, isGroupPlan) && !isInFreeTrial(trialEndsAt) ) diff --git a/services/web/test/frontend/features/subscription/util/show-downgrade-option.test.ts b/services/web/test/frontend/features/subscription/util/show-downgrade-option.test.ts index a7791efef4..8a464ac796 100644 --- a/services/web/test/frontend/features/subscription/util/show-downgrade-option.test.ts +++ b/services/web/test/frontend/features/subscription/util/show-downgrade-option.test.ts @@ -44,4 +44,25 @@ describe('showDowngradeOption', function () { showDowngradeOption('collaborator', false, '2000-02-16T17:59:07.000Z') ).to.be.true }) + it('returns false when on a monthly collaborator plan with a pending pause', function () { + expect( + showDowngradeOption( + 'collaborator', + false, + null, + '2030-01-01T12:00:00.000Z' + ) + ).to.be.false + }) + it('returns false when on a monthly collaborator plan with an active pause', function () { + expect( + showDowngradeOption( + 'collaborator', + false, + null, + '2030-01-01T12:00:00.000Z', + 5 + ) + ).to.be.false + }) })