test(07): persist human verification items as UAT
This commit is contained in:
parent
0af6136864
commit
349279a6ef
1 changed files with 52 additions and 0 deletions
52
.planning/phases/07-engagement-overview-new/07-HUMAN-UAT.md
Normal file
52
.planning/phases/07-engagement-overview-new/07-HUMAN-UAT.md
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue