aboutsummaryrefslogtreecommitdiffstats
path: root/tools/video-unmute-test.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-07 08:27:40 -0700
committerAdam Soltys <[email protected]>2026-10-07 08:27:40 -0700
commitdfb017c1b10cb52c24f4f0bcf745c6abea11b98f (patch)
treeb8150ed4805f206947e2475fe433be953c46fb70 /tools/video-unmute-test.js
parentb70e169bb5b5beccb89fd59427726e32d414b4a5 (diff)
downloadcoinosv3-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.js6
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;
} };