2.4 KiB
| status | phase | source | started | updated | |
|---|---|---|---|---|---|
| partial | 07-engagement-overview-new |
|
2026-05-04T00:00:00Z | 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