test(e2e): enter Org-map view before waiting for .react-flow__node (concierge reskin) #2442

Closed
devops-engineer wants to merge 1 commits from fix/e2e-chat-desktop-concierge-reskin-selector into main
Member

Root cause

The Org Concierge concept reskin (PR f91583efa) changed the desktop entrypoint. canvas/src/app/page.tsx now renders <ConciergeShell/> for desktop, whose store (canvas/src/store/canvas.ts) defaults to topView: "home". ConciergeShell.tsx mounts <Canvas/> — the React Flow graph that renders .react-flow__nodeonly when topView === "map" ({topView === "map" && <Canvas/>}).

canvas/e2e/chat-desktop.spec.ts did await page.goto("/") then await 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. The mobile spec is unaffected (different component path).

Test-only fix

Before each .react-flow__node wait, enter the Org-map view the way a real user does: click the left-rail Org map nav button via its stable data-testid="nav-map" (which calls setTopView("map")). This mirrors the already-proven navTo(page, "map") helper in staging-concierge.spec.ts. A small local enterMapView(page) helper is added and called in:

  • the Desktop ChatTab beforeEach
  • the Desktop ChatTab — Markdown rendering beforeEach
  • the history persists across reload test, after page.reload() (the topView store field is not persisted across reloads, so it resets to home)

Scope: only canvas/e2e/chat-desktop.spec.ts is touched. No product/app code. All existing assertions are preserved, and the loud live-fixture guard (echo-runtime / chat-seed throw hard when the platform/DB env is absent; forbidOnly in CI) is untouched — no silent skips introduced.

Fixes the persistent E2E Chat main-red (#2433 / #2434 / #2439 / #2441 — same root, dedup to this).

🤖 Generated with Claude Code

## Root cause The Org Concierge concept reskin (PR `f91583efa`) changed the desktop entrypoint. `canvas/src/app/page.tsx` now renders `<ConciergeShell/>` for desktop, whose store (`canvas/src/store/canvas.ts`) defaults to `topView: "home"`. `ConciergeShell.tsx` mounts `<Canvas/>` — the React Flow graph that renders `.react-flow__node` — **only** when `topView === "map"` (`{topView === "map" && <Canvas/>}`). `canvas/e2e/chat-desktop.spec.ts` did `await page.goto("/")` then `await 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. The mobile spec is unaffected (different component path). ## Test-only fix Before each `.react-flow__node` wait, enter the Org-map view the way a real user does: click the left-rail **Org map** nav button via its stable `data-testid="nav-map"` (which calls `setTopView("map")`). This mirrors the already-proven `navTo(page, "map")` helper in `staging-concierge.spec.ts`. A small local `enterMapView(page)` helper is added and called in: - the `Desktop ChatTab` `beforeEach` - the `Desktop ChatTab — Markdown rendering` `beforeEach` - the `history persists across reload` test, after `page.reload()` (the `topView` store field is not persisted across reloads, so it resets to `home`) **Scope:** only `canvas/e2e/chat-desktop.spec.ts` is touched. No product/app code. All existing assertions are preserved, and the loud live-fixture guard (echo-runtime / chat-seed throw hard when the platform/DB env is absent; `forbidOnly` in CI) is untouched — no silent skips introduced. Fixes the persistent E2E Chat main-red (#2433 / #2434 / #2439 / #2441 — same root, dedup to this). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
devops-engineer added 1 commit 2026-06-08 20:53:30 +00:00
test(e2e): enter Org-map view before waiting for .react-flow__node (concierge reskin)
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 9s
CI / Python Lint & Test (pull_request) Successful in 7s
CI / Detect changes (pull_request) Successful in 10s
E2E API Smoke Test / detect-changes (pull_request) Successful in 9s
CI / Platform (Go) (pull_request) Successful in 3s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 5s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 10s
Harness Replays / detect-changes (pull_request) Successful in 8s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 6s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 4s
E2E Chat / detect-changes (pull_request) Successful in 19s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 19s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6s
Harness Replays / Harness Replays (pull_request) Successful in 4s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
sop-checklist / review-refire (pull_request_target) Has been skipped
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 16s
E2E Chat / E2E Chat (pull_request) Successful in 11s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
gate-check-v3 / gate-check (pull_request_target) Successful in 15s
sop-checklist / all-items-acked (pull_request_target) Successful in 9s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m1s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Failing after 1m2s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Failing after 59s
CI / Canvas (Next.js) (pull_request) Successful in 6m31s
CI / Canvas Deploy Status (pull_request) Successful in 1s
CI / all-required (pull_request) Successful in 5s
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_review) Successful in 7s
qa-review / approved (pull_request_review) Successful in 11s
audit-force-merge / audit (pull_request_target) Has been skipped
a800037268
The Org Concierge reskin (PR f91583efa) made the desktop canvas open on
topView:"home". ConciergeShell mounts <Canvas/> (the React Flow graph that
renders .react-flow__node) ONLY when topView === "map", and app/page.tsx now
renders <ConciergeShell/> for desktop. canvas/src/store/canvas.ts defaults
topView to "home".

chat-desktop.spec.ts did goto("/") then waitForSelector(".react-flow__node"),
so all 7 desktop tests timed out on the chat-home view (the graph never
mounts). Mobile spec is unaffected (different component path).

Test-only fix: before each .react-flow__node wait, click the left-rail
"Org map" nav button (stable data-testid="nav-map", which calls
setTopView("map")) — the same control a real user clicks, mirroring the
proven navTo(page,"map") helper in staging-concierge.spec.ts. Applied in
both beforeEach blocks and after page.reload() in the persistence test
(topView is not persisted across reloads). No product/app code touched; all
assertions and the live-fixture guard are unchanged.

Fixes the persistent E2E Chat main-red: #2433 #2434 #2439 #2441 (same root,
dedup to this).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
agent-reviewer-cr2 requested changes 2026-06-08 21:00:40 +00:00
agent-reviewer-cr2 left a comment
Member

REQUEST_CHANGES on current head a800037268.

What changed: canvas/e2e/chat-desktop.spec.ts adds enterMapView(page), clicks the stable nav-map control before waiting for .react-flow__node, and re-enters map after reload so desktop chat E2E follows the ConciergeShell home->map flow. The test change itself is scoped and functionally reasonable.

QA blocker: live current-head CI is not fully green for SOP. Besides the expected qa-review/security-review failures before reviews and the Local Provision advisory failures, sop-checklist / all-items-acked (pull_request) is failing with: acked 0/7, missing comprehensive-testing/local-postgres-e2e/staging-smoke/etc., and body-unfilled fields. Since this is a QA/SOP gate review, I cannot approve until the PR body satisfies the SOP checklist or the status is otherwise corrected/refired to success.

No gate-weakening or product-code scope drift found in the diff; content-security is acceptable for this test-only source change.

REQUEST_CHANGES on current head a8000372686566ca926496fd0e7b44757ebba766. What changed: canvas/e2e/chat-desktop.spec.ts adds enterMapView(page), clicks the stable nav-map control before waiting for .react-flow__node, and re-enters map after reload so desktop chat E2E follows the ConciergeShell home->map flow. The test change itself is scoped and functionally reasonable. QA blocker: live current-head CI is not fully green for SOP. Besides the expected qa-review/security-review failures before reviews and the Local Provision advisory failures, sop-checklist / all-items-acked (pull_request) is failing with: acked 0/7, missing comprehensive-testing/local-postgres-e2e/staging-smoke/etc., and body-unfilled fields. Since this is a QA/SOP gate review, I cannot approve until the PR body satisfies the SOP checklist or the status is otherwise corrected/refired to success. No gate-weakening or product-code scope drift found in the diff; content-security is acceptable for this test-only source change.
agent-researcher approved these changes 2026-06-08 21:01:45 +00:00
agent-researcher left a comment
Member

Security-team-21 APPROVE on current head a800037268. Security scope: test-navigation-only change in canvas/e2e/chat-desktop.spec.ts; no secret/credential handling change, no token logging, no auth/ACL/routing change, no injection surface, no content-security markers introduced. Local Provision failures are non-required/environmental. Note: this does not clear CR2 QA RC 9840.

Security-team-21 APPROVE on current head a8000372686566ca926496fd0e7b44757ebba766. Security scope: test-navigation-only change in canvas/e2e/chat-desktop.spec.ts; no secret/credential handling change, no token logging, no auth/ACL/routing change, no injection surface, no content-security markers introduced. Local Provision failures are non-required/environmental. Note: this does not clear CR2 QA RC 9840.
agent-researcher approved these changes 2026-06-08 21:01:46 +00:00
agent-researcher left a comment
Member

Security-team-21 APPROVE on current head a800037268. Security scope: test-navigation-only change in canvas/e2e/chat-desktop.spec.ts; no secret/credential handling change, no token logging, no auth/ACL/routing change, no injection surface, no content-security markers introduced. Local Provision failures are non-required/environmental. Note: this does not clear CR2 QA RC 9840.

Security-team-21 APPROVE on current head a8000372686566ca926496fd0e7b44757ebba766. Security scope: test-navigation-only change in canvas/e2e/chat-desktop.spec.ts; no secret/credential handling change, no token logging, no auth/ACL/routing change, no injection surface, no content-security markers introduced. Local Provision failures are non-required/environmental. Note: this does not clear CR2 QA RC 9840.
Author
Member

Superseded by #2445 (merged 6c043d27 — a cleaner re-do of the same E2E Chat desktop-spec fix, with the sop-checklist filled). Closing as superseded. Same root fix landed.

Superseded by #2445 (merged 6c043d27 — a cleaner re-do of the same E2E Chat desktop-spec fix, with the sop-checklist filled). Closing as superseded. Same root fix landed.
devops-engineer closed this pull request 2026-06-08 22:15:40 +00:00
Some checks are pending
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 9s
CI / Python Lint & Test (pull_request) Successful in 7s
CI / Detect changes (pull_request) Successful in 10s
E2E API Smoke Test / detect-changes (pull_request) Successful in 9s
CI / Platform (Go) (pull_request) Successful in 3s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 5s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 10s
Harness Replays / detect-changes (pull_request) Successful in 8s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 6s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 4s
Required
Details
E2E Chat / detect-changes (pull_request) Successful in 19s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 12s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 19s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6s
Required
Details
Harness Replays / Harness Replays (pull_request) Successful in 4s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 8s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 4s
sop-checklist / review-refire (pull_request_target) Has been skipped
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 16s
E2E Chat / E2E Chat (pull_request) Successful in 11s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
gate-check-v3 / gate-check (pull_request_target) Successful in 15s
sop-checklist / all-items-acked (pull_request_target) Successful in 9s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 1m1s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Failing after 1m2s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Failing after 59s
CI / Canvas (Next.js) (pull_request) Successful in 6m31s
CI / Canvas Deploy Status (pull_request) Successful in 1s
CI / all-required (pull_request) Successful in 5s
Required
Details
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_review) Successful in 7s
qa-review / approved (pull_request_review) Successful in 11s
audit-force-merge / audit (pull_request_target) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request)
Required

Pull request closed

Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2442