Skip to content

061 — should run monthly and yearly subscriptions concurrently with aggregated usage

Description

Verifies that a tenant can hold a Monthly and a Yearly subscription side by side, that total seats are aggregated across both, and that the Monthly plan still auto-renews independently when its cycle ends.

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 Monthly plan via Hosted Checkout (1 seat). Expected: Monthly active, 1 seat at $16.00, 1 of 1 used, summary and next-payment date match Stripe.
  3. Buy the Yearly plan via Hosted Checkout (1 seat, fresh card entry).
  4. Expected: Both plans visible — Monthly with 1 seat at $16.00 (next-payment date matches Stripe), Yearly with 1 seat at ~$142.77 (next-payment date matches Stripe), and aggregate usage shows 1 of 2 seats used. Stripe shows 2 invoices for this customer.
  5. Advance the Stripe test clock by 32 days and reload.
  6. Expected: Monthly has auto-renewed — still 1 seat at $16.00, but the new next-payment date matches Stripe's updated period end. Yearly is still on its first cycle — 1 seat at ~$142.77, period-end date unchanged. Aggregate usage still 1 of 2. Stripe now shows 3 invoices for this customer.
  • Spec: playwright/tests/integration/billing.spec.ts (line 401)
  • Spec: playwright/tests/integration/billing.spec.ts (line 401)