cassettes.mjs (1027B)
1 // Vérifie l'auto-chargement des cassettes : sélectionne un programme du groupe « Cassettes (BASIC) » 2 // et laisse la PAGE taper LOAD"1"/Échap/RUN toute seule, puis capture le résultat. 3 // node test/cassettes.mjs [url] [slug1.k7,slug2.k7,...] [préfixe] 4 import { open, sleep } from './cdp.mjs'; 5 6 const url = process.argv[2] ?? 'http://localhost:8191/'; 7 const which = (process.argv[3] ?? 'donkey-kong.k7,boulderdash.k7,exel-jack.k7').split(','); 8 const prefix = process.argv[4] ?? '/tmp/exl100-cass'; 9 10 const page = await open(url, { width: 900, height: 820 }); 11 await sleep(12000); 12 for (const slug of which) { 13 await page.evaluate(`(() => { const s=document.getElementById('program'); s.value=${JSON.stringify('tape:' + slug)}; s.dispatchEvent(new Event('change')); })()`); 14 await sleep(19000); // 4,5 s ExelBASIC + frappe + 7 s lecture + RUN 15 const name = slug.replace(/\.k7$/, ''); 16 console.log(`${name} :`, await page.screenshot(`${prefix}-${name}.png`)); 17 } 18 for (const l of page.logs) console.log(l); 19 page.close();