ramadanproject/specs/001-public-grid-viewer/checklists/qa.md
Ahmed Darrazi 45a147253c
Some checks failed
tests / ci (push) Failing after 6m13s
linter / quality (pull_request) Failing after 58s
linter / quality (push) Failing after 1m19s
tests / ci (pull_request) Failing after 5m28s
feat(public-grid): add QA, quickstart, decision docs; scheduler docs; ignore files; tasks updates; run pint
2026-01-03 04:56:12 +01:00

44 lines
1.8 KiB
Markdown

# QA Checklist — 001 Public Grid Viewer
## Setup / Environment
- [ ] App boots locally (Sail up, migrations run)
- [ ] `npm run dev` works 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 test` passes
- [ ] `./vendor/bin/sail artisan pint` produces no unexpected changes (after formatting pass)