aboutsummaryrefslogtreecommitdiff
path: root/tests/gallery-probes/probe.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gallery-probes/probe.mjs')
-rw-r--r--tests/gallery-probes/probe.mjs43
1 files changed, 22 insertions, 21 deletions
diff --git a/tests/gallery-probes/probe.mjs b/tests/gallery-probes/probe.mjs
index 051d575..e394316 100644
--- a/tests/gallery-probes/probe.mjs
+++ b/tests/gallery-probes/probe.mjs
@@ -890,7 +890,7 @@ try {
// anywhere, and every command cascades (there is deliberately no teleport
// path). setText is the deterministic seam; next() is random by design.
await evl(`document.querySelector('#card-N20').gw.setText('SYSTEM\\nVOLUME\\nSIGNAL')`);
- await sleep(5400);
+ await sleep(6500);
// Start a cascade and sample the displayed reading every 15ms until stable.
await evl(`(() => {
@@ -908,7 +908,7 @@ try {
window.__n20.anims++;
}, 15);
})()`);
- await sleep(5400);
+ await sleep(6500);
const n20 = await evl(`(() => {
clearInterval(window.__n20.timer);
const h = document.querySelector('#card-N20').gw;
@@ -938,7 +938,7 @@ try {
window.__n20r.timer = setInterval(() => window.__n20r.samples.push(h.reading()), 15);
h.setText('SIGNAL\\nRECORD\\nONLINE'); setTimeout(() => h.setText('RECORD\\nONLINE\\nSTEREO'), 180);
})()`);
- await sleep(5800);
+ await sleep(7000);
const n20b = await evl(`(() => {
clearInterval(window.__n20r.timer);
const h = document.querySelector('#card-N20').gw;
@@ -1000,44 +1000,45 @@ try {
const h = document.querySelector('#card-N20').gw;
if (typeof h.setStyle !== 'function' || !GW.splitFlap.STYLES || !GW.splitFlap.STYLES.skin) return 'no skin axis';
const skins = Object.keys(GW.splitFlap.STYLES.skin);
- if (skins[0] !== 'white') return 'white must list first, got: ' + skins.join(',');
+ if (skins[0] !== 'paper') return 'paper must list first, got: ' + skins.join(',');
if (!['dark','white','light','paper'].every(k => skins.includes(k))) return 'skins are: ' + skins.join(',');
const ink = () => getComputedStyle(document.querySelector('#card-N20 .fh')).color;
const lum = c => { const m = c.match(/[0-9]+/g).map(Number); return m[0] + m[1] + m[2]; };
- const white = ink(); // the card's default skin is white ink
- if (white !== 'rgb(255, 255, 255)') return 'default ink is not white: ' + white;
+ const paperDef = ink(); // the card's default skin is the white card, dark letters
+ if (lum(paperDef) >= 300) return 'default ink is not dark-on-paper: ' + paperDef;
+ if (!document.querySelector('#card-N20 .flap').classList.contains('flap-paper')) return 'default skin class is not paper';
+ h.setStyle('skin', 'white');
+ const white = ink();
+ if (white !== 'rgb(255, 255, 255)') return 'white skin ink is ' + white;
h.setStyle('skin', 'dark');
const cream = ink();
h.setStyle('skin', 'light');
const light = ink();
const gotClass = document.querySelector('#card-N20 .flap').classList.contains('flap-light');
h.setStyle('skin', 'paper');
- const paper = ink();
- const paperClass = document.querySelector('#card-N20 .flap').classList.contains('flap-paper');
- h.setStyle('skin', 'white');
const back = ink();
if (!gotClass) return 'light skin class missing';
- if (!paperClass) return 'paper skin class missing';
- if (!(lum(cream) > 400 && lum(cream) < 760 && lum(light) < 300 && lum(paper) < 300)) return 'inks wrong: ' + cream + ' / ' + light + ' / ' + paper;
- if (back !== white) return 'did not restore the white default: ' + back;
+ if (!(lum(cream) > 400 && lum(cream) < 760 && lum(light) < 300)) return 'inks wrong: ' + cream + ' / ' + light;
+ if (back !== paperDef) return 'did not restore the paper default: ' + back;
return 'ok';
})()`);
- ok('N20 skins: white default first, cream, ivory board, white board — all switch and restore', n20e === 'ok', n20e);
+ ok('N20 skins: paper default first, white ink, cream, ivory — all switch and restore', n20e === 'ok', n20e);
const n20fnt = await evl(`(() => {
const h = document.querySelector('#card-N20').gw;
if (!GW.splitFlap.STYLES.font) return 'no font axis';
const fam = () => getComputedStyle(document.querySelector('#card-N20 .fh')).fontFamily;
+ const helv = fam(); // the card's default face is Helvetica
+ if (!/helvetica/i.test(helv)) return 'default face is not helvetica: ' + helv;
+ h.setStyle('font', 'mono');
const mono = fam();
h.setStyle('font', 'helv');
- const helv = fam();
- h.setStyle('font', 'mono');
const back = fam();
- if (!/helvetica/i.test(helv)) return 'helv did not apply: ' + helv;
- if (!/berkeley|mono/i.test(mono) || back !== mono) return 'mono wrong or not restored: ' + mono + ' / ' + back;
+ if (!/berkeley|mono/i.test(mono) || /helvetica/i.test(mono)) return 'mono did not apply: ' + mono;
+ if (back !== helv) return 'did not restore the helv default: ' + back;
return 'ok';
})()`);
- ok('N20 font switches between Berkeley Mono and Helvetica', n20fnt === 'ok', n20fnt);
+ ok('N20 face: Helvetica default, Berkeley Mono one click away', n20fnt === 'ok', n20fnt);
const n20f = await evl(`(() => {
const chips = [...document.querySelectorAll('#card-N20 .famchips .fc, #card-N20 .famchips [title]')].map(c => c.title || c.textContent);
return chips.length ? chips.join(',') : 'no chips';
@@ -1058,7 +1059,7 @@ try {
const h = document.querySelector('#card-N20').gw;
if (typeof h.setFlapMs !== 'function' || typeof h.flapMs !== 'function') return 'no speed api';
const before = h.flapMs();
- if (before !== 85) return 'default flap rate is ' + before + ', want 85';
+ if (before !== 100) return 'default flap rate is ' + before + ', want 100';
h.setFlapMs(120);
if (h.flapMs() !== 120) return 'setFlapMs did not take: ' + h.flapMs();
const slider = document.querySelector('#card-N20 input[type=range]');
@@ -1083,7 +1084,7 @@ try {
}, 50);
h.set(0);
})()`);
- await sleep(9000);
+ await sleep(10500);
const dwell = await evl(`(() => {
const d = window.__n20dwell; clearInterval(d.timer);
return { settleAt: d.settleAt, delta: d.changeAt ? d.changeAt - d.settleAt : -1 };
@@ -1102,7 +1103,7 @@ try {
if (new Set(skins).size !== 4) return 'skin previews not distinct: ' + skins.join(' ');
if (chips.slice(0, 4).some(c => getComputedStyle(c, '::after').content === 'none')) return 'skin chip has no ink letter';
const fams = chips.slice(4).map(c => getComputedStyle(c, '::after').fontFamily);
- if (!/helvetica/i.test(fams[1]) || fams[0] === fams[1]) return 'font previews wrong: ' + fams.join(' vs ');
+ if (!fams.some(f => /helvetica/i.test(f)) || fams[0] === fams[1]) return 'font previews wrong: ' + fams.join(' vs ');
const size = parseFloat(getComputedStyle(chips[0]).width);
return size >= 15 ? 'ok' : 'chips too small to read: ' + size;
})()`);