aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-28 09:46:57 -0700
committerAdam Soltys <[email protected]>2026-09-28 09:46:57 -0700
commit83aa57add3be62cb38acb1612ff6257a2996972f (patch)
tree18006a2ab027db7e9dfaf250e4df746448370484 /tools
parent7c089faafe943e84652cae19ee53e95932d715b9 (diff)
downloadcoinosv3-83aa57add3be62cb38acb1612ff6257a2996972f.tar.gz
coinosv3-83aa57add3be62cb38acb1612ff6257a2996972f.zip
A clip the reader turned the sound on for stays loud for the session, however its box is rebuilt.
Pinning the box only protected it from a patch in place. A repaint that pairs children differently, the window unmounting the row and mounting it again, or a quoted note loading all rebuilt the player muted with the button back; the URL is remembered now, and a rebuilt box starts loud with no button. Muting again from the player's own control forgets it. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01VhUKyXKtsJ67QAFfb7QR9D
Diffstat (limited to 'tools')
-rw-r--r--tools/video-autoplay-test.js6
1 files changed, 6 insertions, 0 deletions
diff --git a/tools/video-autoplay-test.js b/tools/video-autoplay-test.js
index 29a1437..583c908 100644
--- a/tools/video-autoplay-test.js
+++ b/tools/video-autoplay-test.js
@@ -77,6 +77,12 @@ try {
JSON.stringify(await page.evaluate(() => { const v = document.querySelector('.note-video-box video'); return v && { paused: v.paused, t: v.currentTime, err: v.error && v.error.code, ready: v.readyState }; })));
await page.evaluate(() => document.querySelector('.note-video-box .vid-sound').click()); await sleep(500);
check('Unmute turns the sound on, and the button leaves (the player\'s own controls carry mute)', await page.evaluate(() => { const v = document.querySelector('.note-video-box video'); const b = document.querySelector('.note-video-box .vid-sound'); return !v.muted && !b; }));
+ // the box rebuilt from scratch (the row re-rendered by hand, the way a
+ // window remount or a quote load would) comes back loud, with no button
+ await page.evaluate(() => { const box = document.querySelector('.note-video-box'); const row = box.closest('.row'); row.remove(); });
+ await page.evaluate(() => { const b = [...document.querySelectorAll('button')].find((n) => /dark mode/i.test(n.textContent)); if (b) { b.click(); b.click(); } }); await sleep(800);
+ check('a rebuilt box keeps the sound on for the session', await waitFor(() => { const v = document.querySelector('.note-video-box video'); return v && !v.muted && !document.querySelector('.note-video-box .vid-sound'); }, 6000),
+ JSON.stringify(await page.evaluate(() => { const v = document.querySelector('.note-video-box video'); return v && { muted: v.muted, btn: !!document.querySelector('.note-video-box .vid-sound') }; })));
await page.evaluate(() => window.scrollTo(0, 1000)); await sleep(700);
check('scrolled away, it pauses', await waitFor(() => { const v = document.querySelector('.note-video-box video'); return v && v.paused; }, 4000));