test(07): persist human verification items as UAT

This commit is contained in:
lorentz 2026-05-03 23:04:12 -04:00
parent 0af6136864
commit 349279a6ef

View file

@ -0,0 +1,52 @@
---
status: partial
phase: 07-engagement-overview-new
source: [07-VERIFICATION.md]
started: 2026-05-04T00:00:00Z
updated: 2026-05-04T00:00:00Z
---
## Current Test
[awaiting human testing]
## Tests
### 1. Drawer-to-page navigation
expected: From the More drawer, tapping "Engagement" lands on `/mobile/engagement` inside the Phase 2 shell. Page renders with H1 "Engagement", sticky 3-chip period selector (7d/30d/90d), 4 stacked summary cards, sparkline card, sort chips, search input, and the employee list (or skeleton placeholders during initial load).
result: [pending]
### 2. Period chip refetch behavior
expected: Tapping a different period chip (e.g., 7d → 30d → 90d) fires three independent fetches (summary, trend, users) and updates the cards, sparkline, and list. Active chip changes to `bg-primary text-primary-foreground`.
result: [pending]
### 3. Sort chip behavior
expected: Tapping a sort chip (Hours / Name / Utilization) refetches only the users list (summary and trend stay unchanged). Active sort chip styling updates. List reorders accordingly.
result: [pending]
### 4. Search input behavior
expected: Typing in the search input filters loaded users client-side after a 300ms debounce, matching `displayName` and `email`. When no matches, an inline "No matches for '{query}'" message appears with a "Clear search" button that resets the filter.
result: [pending]
### 5. Sparkline visual rendering
expected: The hours-trend sparkline renders as a single thin line (`stroke-primary stroke-2 fill-none`) over the selected period. Faint baseline at the bottom. Label row above shows "Hours trend · last {periodLabel}" left and the latest-value indicator right (`text-xs text-muted-foreground`). When no points, renders "No activity" inline.
result: [pending]
### 6. IntersectionObserver infinite scroll + Load more
expected: When more than 50 employees exist (`pagination.totalPages > 1`), scrolling to the bottom of the list auto-loads page 2 via IntersectionObserver. Load more button serves as a11y fallback. On error, the button label flips to "Retry".
result: [pending]
### 7. User row tap navigation
expected: Tapping any employee row navigates to `/mobile/engagement/[graphUserId]` (Phase 8's destination — the URL should resolve to a 404 or placeholder until Phase 8 lands; the link itself must work).
result: [pending]
## Summary
total: 7
passed: 0
issues: 0
pending: 7
skipped: 0
blocked: 0
## Gaps