diff --git a/apps/desktop/src/app/settings/billing/use-billing-state.test.ts b/apps/desktop/src/app/settings/billing/use-billing-state.test.ts index 8a71b51f4e85..90569e166da9 100644 --- a/apps/desktop/src/app/settings/billing/use-billing-state.test.ts +++ b/apps/desktop/src/app/settings/billing/use-billing-state.test.ts @@ -222,6 +222,7 @@ describe('deriveBillingView', () => { ] }) ) + const subscription = view.accountRows.find(row => row.id === 'subscription') expect(subscription?.description).toBe('Paid models need a subscription — pick a plan to start it on the portal.') @@ -259,6 +260,7 @@ describe('deriveBillingView', () => { ] }) ) + const subscription = view.accountRows.find(row => row.id === 'subscription') expect(subscription?.chips).toEqual([ @@ -272,6 +274,7 @@ describe('deriveBillingView', () => { okBilling(todayBillingState), okSubscription({ ...todaySubscriptionState, can_change_plan: false, context: 'personal' }) ) + const team = deriveBillingView(okBilling(todayBillingState), okSubscription(todaySubscriptionState)) expect(member.accountRows.find(row => row.id === 'subscription')?.chips).toBeUndefined() diff --git a/ui-tui/src/components/subscriptionOverlay.tsx b/ui-tui/src/components/subscriptionOverlay.tsx index 5e0ae4af4887..60c2b44dc114 100644 --- a/ui-tui/src/components/subscriptionOverlay.tsx +++ b/ui-tui/src/components/subscriptionOverlay.tsx @@ -374,6 +374,7 @@ function OverviewScreen({ onClose, onPatch, overlay, t }: ScreenProps) { // Admin/owner on a personal paid plan can change it in-terminal; otherwise the // portal enforces who can act (members) / starting a new sub needs a card. const canChange = s.can_change_plan && !isFree + // On Free the catalog renders inline; picking a plan hands off to the portal, // where starting a subscription needs card capture + checkout. const freePlans = isFree