diff options
Diffstat (limited to 'tests/gallery-probes/probe.mjs')
| -rw-r--r-- | tests/gallery-probes/probe.mjs | 43 |
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; })()`); |
