File: e2e/permissions.spec.ts:119 + missing test in crates/web/tests/browser.rs
Severity: quality — tier mismatch
Obvious? yes
expect(page2.locator('.channel-add-btn')).toBeHidden() is a single-viewport DOM-visibility assertion against derived client state. The setupTwoPeers flow exists only to produce a non-owner client; the same can be staged in a browser test by mounting the sidebar with a non-owner ClientHandle (state already reachable via the test_client() helper at crates/client/src/lib.rs:1040).
Playwright multi-peer infra is overkill for a static visibility predicate.
Fix: migrate to browser.rs, mount sidebar with non-owner handle.
Filed by /general-audit @ b901575 (2026-05-02). master: #513.
File:
e2e/permissions.spec.ts:119+ missing test incrates/web/tests/browser.rsSeverity: quality — tier mismatch
Obvious? yes
expect(page2.locator('.channel-add-btn')).toBeHidden()is a single-viewport DOM-visibility assertion against derived client state. ThesetupTwoPeersflow exists only to produce a non-owner client; the same can be staged in a browser test by mounting the sidebar with a non-owner ClientHandle (state already reachable via thetest_client()helper atcrates/client/src/lib.rs:1040).Playwright multi-peer infra is overkill for a static visibility predicate.
Fix: migrate to
browser.rs, mount sidebar with non-owner handle.Filed by
/general-audit@b901575(2026-05-02). master: #513.