Developer checklist for verifying every POS path. Progress is saved locally.
Verify Admin PIN gate appears
Test with correct and incorrect PIN
Top bar → "Switch" button
Use device code from DeviceCodeManagement → POS or combo
Verify localStorage clears and PIN re-prompts
Verify pending memberships are cleaned up
2. Cash Drawer Lifecycle0/6
CashDrawerStartDialog flow
SwitchUserPinDialog when drawer already open
Updates in real-time after each sale
CashDrawerCloseDialog → payout entry
Verify expected vs. counted discrepancy
Includes tips by employee, payouts, sales totals
3. Customer Bar (Members / Guests / Students)0/10
POSCustomerBar → search by name/email
Test both QR types
Guest search by name/phone/email
Inline guest creation form
Auto-loads student check-in products at $0
Determines first-position pricing rules
Verify cart pricing recalculates
GuestLinkPrompt after adding guest
Verify photo saves and POS unblocks
StudentAgreementBanner / dialog before check-in
4. Product Catalog & Cart0/13
Greens fee, cart, merchandise, food
Use search bar at top of category grid
useBarcodeScanner — rapid keystrokes + Enter
Verify totals update
Verify skip_inventory_tracking override works
Verify error toast
Check across time windows in 11:00 AM / 4:00 PM tests
Verify "(Member)" badge on cards & line items
membershipIncludedHelper — per-transaction limits + groups
Verify shared group_limit across group items
studentIncludedHelper — by school configuration
Verify multi-tax line items
Verify Membership entities are deleted
5. Memberships & Add-ons0/10
MembershipCheckoutModal → Add to Cart
Verify max_members slot logic
Verify Square subscription auto-creates from payment
AddonCheckoutModal — requires member checked in
Verify date math is correct
createMembershipContract — check SubscriptionContract entity
Verify renewal_history array on Membership
Verify pendingMembershipIds cleanup
School slots decrement, student linked
MembershipCreditDialog → applies $ off
Verify CST display and not military time
POSTeeTimeBookDialog opens
Verify per-play fees auto-add
POSTeeTimeManageDialog
Triggers on Complete Sale
Verify graceful skip
Toggle expand/collapse
TeeSheetTransactionDialog
pos-prepaid-items event — verify $0 line items
ParkTeeTimeDialog
Only when booking > 30 min away AND not check-in
7. Cart Rentals & Fleet0/8
Physical cart not assigned at add
Cart status → checked_out
DeferCartAssignmentDialog → "Defer Until Check-In"
Verify no cart picker prompt
View all carts by status
Cart status → available
Verify status and reason captured
CartLineupRow drag/drop
Verify change due display
TerminalCheckoutDialog → verify Square terminal pings
Tips appear in MyTipsDialog
Stored as credit_card method
MemberLookup required before pay
Records check_sales_total in drawer
Button shows "Complete Check-In ($0.00)"
Needed for refund integration
9. Refunds & Rain Checks0/10
Top bar → Refund button
Different sessions show badge, block refund
RefundTransactionDialog
Verify Square dashboard shows return
Verify amounts and tax recalculate
Verify customer link populated from original tx
IssueRainCheckDialog from customer bar
Items load at $0, RainCheck status → redeemed
Verify no cash drawer impact
AuditLog category=pos
UpgradeDialog — pick customer & original tx
Verify price difference calc
_originalPricePaid in cart display
Verify Transaction.items linkage
11. Split / Park / Recall0/9
Top bar → Park badge updates
Hold vs Release booking choice
Current cart auto-parks if non-empty
Verify slot current_bookings decrements
SplitTicketDialog
Manual / percentage / dollar split
Pre-paid, membership, per-play fee items
splitContext badge updates
Confirmation message reflects count
12. Corporate Play Codes0/4
PlayCodeRedeemDialog from customer bar
Verify _playCodeId on cart item
Verify limit_per_transaction respected
transaction_id linkage saved
13. Course & Conditions0/3
CourseConditionSetter → open/cart-path/closed
Verify auto-expiration
Verify customer-facing display
Verify TimeClock entity created
Pay period summary updates
Verify lat/long check
Shows tips earned in current drawer
Per-employee attribution
Visible in close report
Shows session-only tips
16. Edge Cases & Error Handling0/8
Verify transaction does not double-post
Verify graceful error
Verify quantity floor at 0
Verify error is logged but sale completes
Verify drawer still closes cleanly
pendingMembershipIds deleted
Verify safe-area-top/bottom padding
Verify posUser updates without losing cart
pos_help agent responds
Verify tool_configs permissions
Progress is stored in your browser only. Export to Markdown to share.