1.8 KiB
1.8 KiB
QA Checklist — 001 Public Grid Viewer
Setup / Environment
- App boots locally (Sail up, migrations run)
npm run devworks and page loads without console errors- Storage is writable (local/s3) and master image is accessible
Grid Rendering
- Master image renders at correct aspect ratio
- Grid overlay aligns with master image (no offset)
- Cell size matches config (e.g., 20px) and selection snaps to cell units
- Zoom in/out works (mouse wheel + pinch on mobile)
- Pan/drag works without jitter
Selection Behavior
- Drag selection produces correct rectangle (top-left, bottom-right)
- Selection count equals
(w * h)in cells - Selection cannot go out of bounds (clamped)
- Clearing selection resets UI state cleanly
Reservation Flow (if present)
- Reserve request succeeds for free area
- Conflict returns 409 and UI shows a clear error
- Reserved area is visibly blocked in the grid
- Holds expire after configured minutes (manual prune or scheduler)
Status & Feedback
- Sidebar updates live (cells, price, status)
- User sees loading state while reserving/charging
- Success/failure toasts (or inline messages) appear appropriately
Performance / Stability
- No “thousands of DOM nodes” grid rendering (canvas/konva only)
- Page remains responsive when zooming/panning rapidly
- No memory leak warnings in devtools during repeated interactions
Security / Input Validation (basic)
- Server rejects invalid payloads (missing coords, negative sizes, too-large selection)
- Server maps pixels → cells consistently (tested)
Regression
./vendor/bin/sail artisan testpasses./vendor/bin/sail artisan pintproduces no unexpected changes (after formatting pass)