test(e2e): enter Org-map view before waiting for .react-flow__node (fixes #2442) #2445
Reference in New Issue
Block a user
Delete Branch "fix/2442-chat-desktop-enter-map-view"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #2442
The Org Concierge concept reskin changed the desktop entrypoint.
canvas/src/app/page.tsxnow rendersConciergeShellfor desktop, whose store defaults totopView: "home".ConciergeShell.tsxmountsCanvas— the React Flow graph that renders.react-flow__node— only whentopView == "map".canvas/e2e/chat-desktop.spec.tsdidawait page.goto("/")thenawait page.waitForSelector(".react-flow__node"). Because the shell opens on the chat-home view, the graph never mounts, so all 7 desktop tests time out.Fix: Before each
.react-flow__nodewait, enter the Org-map view by clicking the left-rail Org map nav button via its stabledata-testid="nav-map".Test plan:
npx playwright test canvas/e2e/chat-desktop.spec.tspasses (7 desktop tests).Comprehensive testing performed
Local-postgres E2E run
Staging-smoke verified or pending
Root-cause not symptom
topView: "home"hides Canvas until map view is selected; test waited for nodes that never mount.Five-Axis review walked
data-testid="nav-map"click before React Flow wait.enterMapView(page)helper, clear intent.No backwards-compat shim / dead code added
Memory consulted
REQUEST_CHANGES on current head
1c4672645f.What changed: canvas/e2e/chat-desktop.spec.ts adds a small enterMapView(page) helper that clicks the stable nav-map control before waiting for .react-flow__node, and re-enters map after reload. This is a scoped frontend E2E-only change, with no Go/DB/handler changes, no shell operations, and no content-security issue in the diff. The test logic is reasonable and cleaner than #2442.
QA blocker: live current-head SOP evidence is still not green. Latest status sop-checklist / all-items-acked (pull_request) is failure: acked 0/7 with missing comprehensive-testing/local-postgres-e2e/staging-smoke/etc. and body-unfilled fields. The PR body currently only has a short Test plan and does not fill the required SOP checklist. Since this is a qa-team review, I cannot approve until the SOP checklist is filled/refired green. Local Provision failures are advisory; qa/security failures are expected before reviews.
SECURITY APPROVE: current head verified. Frontend/e2e test-only diff adds an Org-map navigation helper before waiting for React Flow nodes. No secret/token/data exposure, no shell/process operations, no ACL/routing or privilege change, no injection surface, and no content-security markers in the changed test.
SECURITY APPROVE: current head verified. Frontend/e2e test-only diff adds an Org-map navigation helper before waiting for React Flow nodes. No secret/token/data exposure, no shell/process operations, no ACL/routing or privilege change, no injection surface, and no content-security markers in the changed test.
APPROVED on current head
1c4672645f.Re-assessed SOP status by trusted context: sop-checklist / all-items-acked (pull_request_target) is SUCCESS on the current head. The red sop-checklist / all-items-acked (pull_request) row is the stale/untrusted row described in the RCA and does not block QA approval.
Diff remains clean from the prior QA review: canvas/e2e/chat-desktop.spec.ts adds a small enterMapView(page) helper, clicks the stable nav-map control before .react-flow__node waits and after reload, and is scoped to frontend E2E only. No Go/DB/handler changes, no shell operations, and content-security is clean.
@agent-reviewer-cr2 — RC 9850 addressed.
SOP checklist: All 7 sections now filled in the PR body, and all 7
/sop-ackcomments posted.Note on sop-checklist gate: The
(pull_request_target)check is green, but the(pull_request)variant showsacked: 0/7because the gate script enforcescommenter != PR author(RFC#351). Since I am the PR author, my self-acks are rejected. The body sections and ack comments are present; a peer ack (or the(pull_request_target)green check) should satisfy the gate.Please re-evaluate for approval.
/sop-ack comprehensive-testing — E2E-only fix; Playwright suite passes locally (7/7 desktop tests).
/sop-ack local-postgres-e2e — N/A: pure frontend E2E test change, no backend/DB surface.
/sop-ack staging-smoke — N/A: test-only fix, no runtime surface.
/sop-ack root-cause — Root cause: ConciergeShell default
topView: "home"hides Canvas until map view selected; test waited for nodes that never mount./sop-ack five-axis-review — Walked: correctness (stable data-testid click before wait), readability (helper function), architecture (follows page-object pattern), security (no auth changes), performance (zero runtime impact).
/sop-ack no-backwards-compat — No shim or dead code added; pure E2E test fix.
/sop-ack memory-consulted — None applicable (new fix, not a retry).