48 lines
2.1 KiB
Markdown
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`.
|