fix(paykit): cancel via cancel_at_period_end + handle terminal status in webhook
- cancelSubscription now uses cancel_at_period_end instead of cancel_at (cancel_at doesn't reliably fire subscription.deleted with test clocks) - subscription.upsert webhook handler now detects terminal status (canceled/ended) and activates scheduled plans, matching the subscription.delete handler behavior - Smoke tests reworked: checkout flow via fakeCheckoutCompletion, faked webhook events for test clock lifecycle (stripe listen doesn't forward test clock events), createSubscription override for allow_incomplete payment behavior - 7 lifecycle steps passing: signup, checkout to Pro, upgrade to Ultra, downgrade to Pro, resume Ultra, cancel to Free, upgrade to Pro
M
Max Katz committed
92f79a612b67eb3cbf16709b6f20caf5b8a3cd2e
Parent: 4edcad7