Skip to content

070 — should cancel yearly subscription while monthly remains active

Description

Verifies that cancelling only the Yearly subscription does not affect the Monthly plan, and that once the Yearly period ends the Yearly plan goes inactive while the Monthly plan continues to provide access.

Preconditions

  • Freshly registered tenant signed in as the owner on the dev environment.
  • Tenant is on the 14-day free trial.
  • Stripe sandbox customer + test clock exist for the tenant.

Steps

  1. Open the Billing page. Expected: 14-day trial summary visible.
  2. Buy the Yearly plan (1 seat) via Hosted Checkout. Expected: Yearly active, 1 seat at ~$142.77, 1 of 1 used, summary and next-payment date match Stripe.
  3. Buy the Monthly plan (1 seat) via Hosted Checkout. Expected: Yearly shows 1 seat at ~$142.77, Monthly shows 1 seat at $16.00, aggregate usage is 1 of 2, summary and next-payment dates match Stripe.
  4. Open the Customer Portal and cancel only the Yearly subscription, then return to the app.
  5. Expected: Yearly card now shows "subscription ends ..." with a date from Stripe at 1 seat / ~$142.77; Monthly card still shows "next payment due ..." at 1 seat / $16.00 with its period-end from Stripe.
  6. Advance the Stripe test clock by 366 days and reload.
  7. Expected: Yearly subscription is gone and replaced by a "Renew Yearly subscription" prompt; Monthly remains active at 1 seat / $16.00; aggregate usage is 1 of 1.
  • Spec: playwright/tests/integration/billing.spec.ts (line 822)
  • Spec: playwright/tests/integration/billing.spec.ts (line 822)