e2e: SAS device verification + 1:1 call reaching Connected #4

Closed
claude wants to merge 0 commits from feat/e2e-verification-call into main
Contributor

Self-directed continuation from a 2026-09-16 pre-release audit session, picked from .hub/status.json's next-list item "e2e: SAS verification + a 1:1 call" — the one gap that was genuinely doable without MAS/OIDC or deploy infra.

What this adds

  • e2e/tests/verification.spec.ts — two sessions of the same account do a full SAS emoji verification, asserting both sides see the identical emoji sequence and both land on "Done".
  • e2e/tests/call.spec.ts — a real 1:1 WebRTC voice call (fake media devices) from ring through to Connected on both sides, then a clean hangup.

A real bug found along the way

Self-verification (verifying your own second device) had no UI entry point anywhere — UserProfilePopover.tsx and memberMenu.tsx both explicitly hide the "Verify" action for your own user id, and Settings → Account → Signed-in devices only offered sign-out. The underlying requestUserVerification() API was fully capable; this was a missing affordance, not a test-only gap. Added a "Verify" button per non-current device row in DeviceManagementSection.tsx.

Also fixed a test-infra bug: Synapse's admin register endpoint returns a live, unused access_token/device_id as a side effect, leaving a phantom device on every e2e test account — harmless until a device-count assertion needed exactly the sessions the test itself created. Now logged out immediately in registerUser().

Gate

Build clean, 471 unit tests (unaffected), oxlint 0 errors, full e2e suite 15/15 green (13 previous + 2 new), reproduced green across three repeated full-suite runs.

Note for the reviewer

This branch is based on main @ 2b93105 (pre-dates a separate doc-only audit pass now on main). Verified with git merge-tree that it merges cleanly with no conflicts against current main — only doc files changed on one side, only app/test code on the other.

PLAN.md has a full round writeup (Hungarian, matching house style).

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Self-directed continuation from a 2026-09-16 pre-release audit session, picked from `.hub/status.json`'s next-list item "e2e: SAS verification + a 1:1 call" — the one gap that was genuinely doable without MAS/OIDC or deploy infra. ## What this adds - `e2e/tests/verification.spec.ts` — two sessions of the same account do a full SAS emoji verification, asserting **both sides see the identical emoji sequence** and both land on "Done". - `e2e/tests/call.spec.ts` — a real 1:1 WebRTC voice call (fake media devices) from ring through to `Connected` on both sides, then a clean hangup. ## A real bug found along the way Self-verification (verifying your own second device) had **no UI entry point anywhere** — `UserProfilePopover.tsx` and `memberMenu.tsx` both explicitly hide the "Verify" action for your own user id, and Settings → Account → Signed-in devices only offered sign-out. The underlying `requestUserVerification()` API was fully capable; this was a missing affordance, not a test-only gap. Added a "Verify" button per non-current device row in `DeviceManagementSection.tsx`. Also fixed a test-infra bug: Synapse's admin register endpoint returns a live, unused access_token/device_id as a side effect, leaving a phantom device on every e2e test account — harmless until a device-count assertion needed exactly the sessions the test itself created. Now logged out immediately in `registerUser()`. ## Gate Build clean, 471 unit tests (unaffected), oxlint 0 errors, full e2e suite **15/15 green** (13 previous + 2 new), reproduced green across three repeated full-suite runs. ## Note for the reviewer This branch is based on `main` @ `2b93105` (pre-dates a separate doc-only audit pass now on `main`). Verified with `git merge-tree` that it merges cleanly with no conflicts against current `main` — only doc files changed on one side, only app/test code on the other. PLAN.md has a full round writeup (Hungarian, matching house style). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
e2e: SAS device verification + 1:1 call reaching Connected
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
CI / e2e (pull_request) Has been cancelled
bc1c9b0339
Both subsystems had zero e2e coverage (only SDK-mocked unit tests).
Along the way, found that self-verification (verifying your own other
device/session) has no UI entry point anywhere - UserProfilePopover and
memberMenu both explicitly hide the Verify action for your own user id,
and DeviceManagementSection only offers sign-out. Added a Verify button
per non-current device to close that gap, which is also what makes the
new verification.spec.ts possible to drive through real UI.

Also fixed a test-infra issue: registerUser() (e2e/tests/helpers.ts)
discarded an access_token/device_id that Synapse's admin register
endpoint returns as a side effect, leaving every test account with an
invisible, unused "phantom" device. Harmless until a test needed an
exact device count; now logged out immediately after registration.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Author
Contributor

Merged manually to main at 222623e (fast-forward, PLAN.md conflict resolved by keeping both round entries). Gate: build clean, 476 unit tests (+1 skip), lint 0 errors, e2e 17/17 green (15 prior + 2 new: verification.spec.ts, call.spec.ts).

Merged manually to main at 222623e (fast-forward, PLAN.md conflict resolved by keeping both round entries). Gate: build clean, 476 unit tests (+1 skip), lint 0 errors, e2e 17/17 green (15 prior + 2 new: verification.spec.ts, call.spec.ts).
claude closed this pull request 2026-09-16 18:51:31 +00:00
Some checks failed
CI / build-and-test (pull_request) Has been cancelled
CI / e2e (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
thatumi/JorKonvo!4
No description provided.