exl100

Émulateur Exelvision EXL 100 (1984) dans le navigateur : dsp-cpp en WebAssembly, cartouches et cassettes BASIC
git clone https://git.schurger.org/exl100.git
Log | Files | Refs | README

tape-sides.mjs (1813B)


      1 // Cassettes à plusieurs faces : badge dans la bibliothèque, bouton 📼 « Face B » dans la barre après lancement,
      2 // insertion à chaud (dsp_web_tape_load) avec message d'état.
      3 //   node test/tape-sides.mjs [bout de titre] [base-url]
      4 import { open, sleep } from './cdp.mjs';
      5 
      6 const want = (process.argv[2] ?? 'arcade').toLowerCase();
      7 const base = process.argv[3] ?? 'http://127.0.0.1:8196';
      8 const page = await open(base + '/', { width: 900, height: 900 });
      9 await page.evaluate('location.reload()');
     10 await sleep(7000);
     11 const row = await page.evaluate(`(() => {
     12   const b = [...document.querySelectorAll('.pg')].find((b) => b.dataset.type === 'tape' && b.dataset.search.includes(${JSON.stringify(want)}) && b.querySelector('.pg-side'));
     13   if (!b) return null;
     14   const sides = [...b.querySelectorAll('.pg-side')].map((x) => x.textContent);
     15   b.click();
     16   return { title: b.dataset.title, sides, rows: [...document.querySelectorAll('.pg')].filter((r) => r.dataset.search.includes(${JSON.stringify(want)})).length };
     17 })()`);
     18 console.log('entrée :', JSON.stringify(row));
     19 await sleep(6000);
     20 const buttons = await page.evaluate("[...document.querySelectorAll('#tape-sides button')].map((b) => b.textContent)");
     21 console.log('boutons de la barre :', JSON.stringify(buttons));
     22 await page.evaluate("document.querySelector('#tape-sides button').click()");
     23 await sleep(500);
     24 const after = await page.evaluate("({ status: document.getElementById('status').textContent, pick: document.getElementById('pick').textContent, buttons: [...document.querySelectorAll('#tape-sides button')].map((b) => b.textContent) })");
     25 console.log('après insertion :', JSON.stringify(after));
     26 console.log(buttons.length && /dans le lecteur/.test(after.status) && after.buttons.join() !== buttons.join() ? 'OK' : 'PROBLÈME');
     27 page.close();