065 — should reduce monthly seats from 2 to 1 and apply at next billing cycle¶
Description¶
Verifies that reducing seats on a Monthly subscription does not take effect immediately: the current seats remain until the period ends, and only at renewal does the seat count drop and excess users get downgraded to "View only".
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¶
- Open the Billing page. Expected: 14-day trial summary visible.
- Buy the Monthly plan (1 seat) via Hosted Checkout. Expected: Monthly active, 1 seat at $16.00, 1 of 1 used, summary and next-payment date match Stripe.
- Open the Customer Portal and grow Monthly to 2 seats. Add 1 employee via API and reload. Expected: Users page shows both the owner and the new employee as "Standard"; Billing shows Monthly with 2 seats at $32.00, 2 of 2 used, summary and next-payment date match Stripe.
- Open the Customer Portal and reduce the Monthly subscription to 1 seat.
- Expected: Monthly subscription still shows 2 seats this period but the displayed next-period seat count is 1, the cost falls to $16.00, both seats are still in use (2 of 2), and the summary sentence shows the upcoming downgrade with the period-end date from Stripe.
- Advance the Stripe test clock by 32 days and reload.
- Expected: Monthly subscription now shows 1 seat at $16.00, 1 of 1 used, and the next-payment date matches Stripe's new period end.
- Open the Users page. Expected: the owner is still "Standard"; the previously-added employee is now "View only".
Related¶
- Spec:
playwright/tests/integration/billing.spec.ts(line 523)
Related¶
- Spec:
playwright/tests/integration/billing.spec.ts(line 523)