Files
descrybe/docs/live-stripe-test.md
greeneclipse 8580c996c3 Initial commit of Descrybe v2 without local scratch artifacts.
Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
2026-08-09 22:47:43 +02:00

2.8 KiB

Live Stripe mock UI test

Date: 2026-08-04
Environment: local Descrybe v2 (WEB_ORIGIN=http://localhost:5174, API :8080)
Demo user: demo@descrybe.local / DemoPass123! (Local Demo Co)

Preconditions

  • STRIPE_MOCK=true in root .env (API restarted after change)
  • Migration 016_stripe_billing applied (goose version 16+)
  • Web + API running (localhost:5174, localhost:8080/healthz)
  • Demo company starts on Enterprise (run seed-demo if unsure)

Flow exercised

  1. Browser login at /login
  2. Open /plans — Enterprise marked Current plan; Upgrade to Starter visible
  3. Click Upgrade to Starter
  4. Mock Checkout assigns Starter + credits and redirects to
    /billing?checkout=success&mock=1&plan=starter
  5. Assert success copy includes Plan updated / starter; Plan details show Starter
  6. Restore demo: cd apps/api && go run ./cmd/seed-demo -postgres $env:DATABASE_URL
  7. Re-check /billing and /plansEnterprise, Unlimited, no accidental leave on Starter

Results

Step Result
Stripe status (GET /api/billing/stripe) mock:true, configured:false
Mock checkout API applied:true, success URL with mock=1&plan=starter
UI Upgrade to Starter Pass — redirect + success banner
seed-demo restore Enterprise Pass — 1,000,000 credits / unlimited SKUs
Billing after restore Pass — Enterprise, Unlimited, Compare plans
Plans after restore Pass — Current plan on Enterprise; Upgrade CTAs on Starter/Growth/Business

Artifacts: artifacts/live-stripe-checkout.webp, artifacts/live-stripe-verify.webp (+ .report.json).

UI fixes from this pass

  1. Plans — Enterprise subtitle no longer says “with Unlimited AI credits remaining” (redundant/confusing). Copy is now capacity-focused.
  2. Billing — “Compare plans” was an <a> wrapping <button> (invalid nesting). Switched to buttonClasses on the anchor.

Notes

  • On Enterprise, Billing hides Quick upgrade (by design). Use /plans for self-serve mock upgrades.
  • Mock Checkout on Local Demo Co will move the tenant off Enterprise. Always re-run seed-demo afterward.
  • Do not leave the demo company on Starter.
  • Production: real STRIPE_SECRET_KEY, publishable key, price IDs, and STRIPE_WEBHOOK_SECRET are required (see stripe-setup.md). STRIPE_MOCK=true is local-only and is not a code blocker for staging as long as prod cutover sets real keys.

Restore command

cd apps/api
# DATABASE_URL from repo `.env` (Postgres :5433)
go run ./cmd/seed-demo -postgres $env:DATABASE_URL -email demo@descrybe.local -password 'DemoPass123!' -also-email demo@descrybe.test

See also: stripe-setup.md, demo-user.md.