diff options
| author | Adam Soltys <[email protected]> | 2026-10-07 08:27:40 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-07 08:27:40 -0700 |
| commit | dfb017c1b10cb52c24f4f0bcf745c6abea11b98f (patch) | |
| tree | b8150ed4805f206947e2475fe433be953c46fb70 /tools/video-unmute-test.js | |
| parent | b70e169bb5b5beccb89fd59427726e32d414b4a5 (diff) | |
| download | coinosv3-dfb017c1b10cb52c24f4f0bcf745c6abea11b98f.tar.gz coinosv3-dfb017c1b10cb52c24f4f0bcf745c6abea11b98f.zip | |
Feed, composer and zap tests follow today's app
- feed tests reach the Feed from the bottom nav (the chat-home row is
gone) and seed this wallet's last feed as Following (new wallets open on
Popular, c89050e) plus the author's profile (readiness gate)
- post-actions: its picture is made locally (it read another session's
scratchpad), the post's own ⋯ (not the feed header's), a real tap on the
DM picture (a tap beside a fitted picture is a tap on the post)
- composer-media / video-compress: intercept every public media host
(ditto is first now; the tests were uploading for real)
- compose-preview: Preview is one toggle button (aria-pressed)
- thread-reply: harness has a wallet (else visitor: Reply asks to sign in),
registers <coinos-text>, holds the root's id-only query; atomic send tap
- video-unmute: stubs what videoNode reaches outside its slice; preload
none means the in-view clip is told to load
- zap-deep-profile: zap button scrolled to mid-screen (the bottom nav
covered it)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'tools/video-unmute-test.js')
| -rw-r--r-- | tools/video-unmute-test.js | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/video-unmute-test.js b/tools/video-unmute-test.js index 16cb56f..fec3955 100644 --- a/tools/video-unmute-test.js +++ b/tools/video-unmute-test.js @@ -16,6 +16,10 @@ const server = Bun.serve({ port: 5302, fetch(req) { // Hold autoplay until after repaint to make the race deterministic. window.IntersectionObserver = undefined; const t = key => key; + // what videoNode reaches for outside the slice: no cached stills or sizes, + // and no clip over the data budget + const videoThumbs = new Map(), videoInfo = new Map(), tappedClips = new Set(); + const feedMedia = () => null, rememberVideo = () => {}, probeVideo = async () => {}, videoHeavy = () => false, heavyLabel = () => ''; ${dom} ${video} const url = '/clip.webm'; @@ -24,6 +28,8 @@ const server = Bun.serve({ port: 5302, fetch(req) { const originalButton = live.querySelector('button'); const fresh = videoNode(url); morph(live, fresh); + // (a clip loads nothing until it comes into view; this one is in view) + live.querySelector('video').preload = 'auto'; window.test = { live, fresh, originalButton, rebuild() { const next = videoNode(url); live.replaceWith(next); return next.querySelector('video').muted; } }; |
