Files
kandev/docs/plans/message-queue-pin/task-02-e2e-pin.md
T
2026-08-24 11:09:03 +00:00

48 lines
2.1 KiB
Markdown

---
id: "02-e2e-pin"
title: "E2E pin persistence across navigation"
status: done
wave: 2
depends_on: ["01-frontend-pin"]
plan: "plan.md"
spec: "../../specs/ui/requirements/message-queue-pin.md"
---
# Task 02: E2E pin persistence across navigation
- **Acceptance:**
1. A queued-message scenario: after expanding the queue panel and clicking
`queue-pin`, navigating away from the task and back shows the expanded
panel (`queued-ghost-list` visible) without clicking `queue-chip`.
2. A regression scenario: without pinning, the same navigation leaves the
panel collapsed with `queue-chip` visible.
- **Verification** (rooted at `apps/web`; requires the e2e fixture backend per
`apps/web/e2e/README.md`):
```bash
cd apps/web && pnpm e2e:raw -- tests/chat/message-queue-pin.spec.ts
```
- **Files likely touched:**
- `apps/web/e2e/tests/chat/message-queue-pin.spec.ts` (new)
- Possibly `apps/web/e2e/tests/chat/message-queue.spec.ts` helpers reuse
- **Dependencies:** `01-frontend-pin` must land first (the pin button must
exist in the header).
- **Parallelism:** sequential.
- **Inputs:** spec Scenarios; plan E2E Tests section. Pattern:
`apps/web/e2e/tests/chat/message-queue.spec.ts` (queue a message, open via
`queue-chip`, navigate with `page.goto`).
- **Output contract:** summary, files changed, exact command + outcome,
task/plan status update.
## Results
- `cd apps/web && pnpm e2e:run tests/chat/message-queue-pin.spec.ts` (managed
runner, fresh production build) → 2 passed (pinned stays expanded across
navigation; unpinned stays collapsed).
- `cd apps/web && pnpm e2e:run --no-build --project mobile-chrome tests/chat/mobile-message-queue-management.spec.ts` → 3 passed, including the new
"mobile pin keeps the queue panel open across navigation" test (touch target
≥44px asserted via `expectTouchTarget`).
- Files changed beyond the planned list: mobile coverage added to the existing
`mobile-message-queue-management.spec.ts` (mobile-parity requirement);
`seedBusyQueueTask` now returns `{ session, taskId }`.
- Security/trust boundaries: `None`. External side effects: `None`.