Happy path
Open Specialized Ticketing Reports.
Tabs split transfer, waitlist, purchase, and ticket-block reports under one umbrella.
Select a sub-report and generate.
The async job tracker owns lifecycle states and artifact recovery.
Download the selected ticketing export.
Rows preserve sub-report-specific state, allocation, and reconciliation fields.
Failure modes
Transfer states collapsed
Trigger: pending, accepted, declined, revoked, and expired transfers are merged.
Resolution: transfer report keeps each state visible and filterable.
Waitlist promotion trail missing
Trigger: promoted guest has no source waitlist timestamp or promotion action.
Resolution: waitlist export includes queued, promoted, accepted, and skipped rows.
Purchase reconciliation incomplete
Trigger: purchase report omits fees, refunds, or settlement state.
Resolution: reconciliation summary flags missing finance fields before export.
Ticket-block allocations overcounted
Trigger: sponsor allocation report counts revoked or transferred tickets as available.
Resolution: allocation totals reconcile assigned, used, transferred, revoked, and remaining.
Deployed-runtime gap
Trigger: deployed run on 2026-04-29 observed transfer report job create returned 400 D1 bootstrap error; the probe locks this in until the gap is closed.
Resolution: status 400 remains expected until deployed D1 bootstrap is fixed.
Stable test attributes
Visibility teeth. Each attribute must be effectively visible when active.
specialized-ticketing-reports-page | Page | Specialized ticketing reports surface |
specialized-ticketing-tabs | Form | Transfer/waitlist/purchase/ticket-block tabs |
specialized-ticketing-transfer-table | Preview | Transfer state rows |
specialized-ticketing-waitlist-table | Preview | Waitlist promotion rows |
specialized-ticketing-purchase-summary | Preview | Purchase reconciliation summary |
specialized-ticketing-block-allocation | Preview | Ticket-block allocation counts |
specialized-ticketing-generate-cta | Toolbar | Create report job |
specialized-ticketing-job-tracker | Page | Async report lifecycle |
specialized-ticketing-download-cta | Job row | Download artifact |
specialized-ticketing-regenerate-cta | Job row | Regenerate expired/swept artifact |
specialized-ticketing-error-panel | Job row | Failure reason and request id |
specialized-ticketing-stuck-banner | Job row | Queued too long warning |
specialized-ticketing-permission-gate | Catalog | Permission-filtered report entry |
specialized-ticketing-gap-panel | Page | Runtime gap notice |
Agent test plan
- specialized-ticketing-renders
- generate-transfer-report
- ticketing-subreports-reconcile
- deployed-runtime-gap