aboutsummaryrefslogtreecommitdiffstats
path: root/tools/feed-momentum-test.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-09 01:06:37 -0700
committerAdam Soltys <[email protected]>2026-10-09 01:06:37 -0700
commit817bcc3ba7b2aaad388bc5b2e5cda5ccf7b27766 (patch)
treedcee40a6ed25e6b7e8a1f0dcfa180aca9db05f97 /tools/feed-momentum-test.js
parent537b116400089ce15a1bdbeb0873cb88dfa35fe3 (diff)
downloadcoinosv3-817bcc3ba7b2aaad388bc5b2e5cda5ccf7b27766.tar.gz
coinosv3-817bcc3ba7b2aaad388bc5b2e5cda5ccf7b27766.zip
Restart wheel coast timing and respond immediately on reversal
Diffstat (limited to 'tools/feed-momentum-test.js')
-rw-r--r--tools/feed-momentum-test.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/tools/feed-momentum-test.js b/tools/feed-momentum-test.js
index 9f61667..29e4934 100644
--- a/tools/feed-momentum-test.js
+++ b/tools/feed-momentum-test.js
@@ -57,6 +57,20 @@ try {
await sleep(60); await notch(-1);
const brake = await settle();
check('a reverse turn brakes the coast', brake < 3 * one, brake + 'px');
+ for (const dir of [1, -1]) {
+ await page.evaluate(() => window.scrollTo(0, 2000));
+ await notch(dir); await sleep(60);
+ const first = await page.evaluate((dir) => {
+ const ev = new WheelEvent('wheel', { deltaY: -dir * 100, deltaMode: 0, bubbles: true, cancelable: true });
+ Object.defineProperty(ev, 'wheelDeltaY', { value: dir * 120 });
+ const before = scrollY;
+ document.querySelector('#stand-in p').dispatchEvent(ev);
+ return scrollY - before;
+ }, dir);
+ check('reversal responds immediately with a small step (' + dir + ')', first * dir < 0 && Math.abs(first) <= 16, first + 'px');
+ await settle();
+ }
+
await top();
check('a trackpad\'s smooth deltas are the browser\'s', !(await notch(1, true)));
check('...and a notch right after them too (still a trackpad)', !(await notch(1)));