wulf-pulse/.planning/phases/04-tickets-restyle/04-HUMAN-UAT.md

2.3 KiB
Raw Blame History

status phase source started updated
passed 04-tickets-restyle
04-VERIFICATION.md
2026-05-03T00:00:00Z 2026-05-03T00:00:00Z

Current Test

[all tests passed]

Tests

1. Filter strip default-collapsed and expand/collapse

expected: | Open /mobile/tickets on iPhone 15 Pro emulation (393×852).

  • On load: filter strip is collapsed (only "Filters" toggle and search visible)
  • Tap "Filters" → strip expands smoothly revealing status chips, priority chips, queue Select, and "Assigned to me" Switch
  • Tap "Filters" again → collapses result: passed

expected: |

  • Navigate to /mobile/tickets?priority=2&mine=1 directly
  • Filters hydrate: "High" priority chip selected, "Assigned to me" toggled on
  • Adjust a filter — URL updates via router.replace (no new history entry)
  • Browser back exits the page rather than reverting the filter mutation result: passed

3. IntersectionObserver infinite scroll

expected: |

  • Load page, scroll to bottom of first ~25 rows
  • Next page (~25 more) auto-loads when last row is ~200px from viewport
  • No double-fetch when scrolling fast
  • When nextCursor is null, no further fetches occur result: passed

4. Load more fallback button (accessibility)

expected: |

  • Tab key reaches the "Load more" button below the sentinel
  • Press Enter or Space triggers the next page fetch
  • Button hides when hasMore is false result: passed

5. Priority stripe colors render correctly

expected: |

  • Critical (priority=1) row has a red left border (border-red-500)
  • High (priority=2) → orange left border
  • Medium (priority=3) → amber left border
  • Low (priority=4) → slate left border
  • Confirms Tailwind didn't purge dynamic priority classes result: passed

6. Detail page header layout

expected: |

  • Tap a ticket row → navigate to /mobile/tickets/[id]
  • Shell HeaderBar (Wulf mark + bell + avatar) renders at top
  • Below it: new in-page header with back chevron + "Tickets" + breadcrumb "Tickets / #{number}" + external-link icon
  • Tapping back chevron returns to list (preserving filter URL state)
  • Tapping external-link icon opens desktop ticket page in new tab
  • No double-border or visual overlap between the two header levels result: passed

Summary

total: 6 passed: 6 issues: 0 pending: 0 skipped: 0 blocked: 0

Gaps