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

1.8 KiB

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)