aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/gallery-probes/probe.mjs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/gallery-probes/probe.mjs b/tests/gallery-probes/probe.mjs
index a242c41..e4696ad 100644
--- a/tests/gallery-probes/probe.mjs
+++ b/tests/gallery-probes/probe.mjs
@@ -1151,6 +1151,20 @@ try {
})()`);
ok('every card ID badge links to its own anchor', anchors === 'ok', anchors);
+ // Batch-3 set() hardening: out-of-range input cannot wedge an instrument.
+ // presetBank clamps; dualKnob clamps both spindles. Built on detached hosts
+ // so the gallery's own cards stay untouched.
+ const clamps = await evl(`(() => {
+ const pb = DUPRE.presetBank(document.createElement('div'));
+ pb.set(99); const hi = pb.get();
+ pb.set(-5); const lo = pb.get();
+ const dk = DUPRE.dualKnob(document.createElement('div'));
+ dk.set(500, -500); const [o, i] = dk.get();
+ return JSON.stringify({ hi, lo, o, i });
+ })()`);
+ ok('presetBank and dualKnob set() clamp out-of-range input',
+ clamps === JSON.stringify({ hi: 3, lo: 0, o: 100, i: 0 }), clamps);
+
// late exceptions from interactions
const errs2 = events.filter(e => e.method === 'Runtime.exceptionThrown');
ok('no exceptions after interaction', errs2.length === 0);