// Run the actual page script with a tiny DOM/fetch fixture; no browser dependency. const fs = require('node:fs'); const vm = require('node:vm'); const assert = require('node:assert/strict'); const elements = new Map(); const events = new Map(); const requests = []; const element = id => { if (!elements.has(id)) elements.set(id, {value:'', checked:false, disabled:false, textContent:'', addEventListener(){}, reset(){}}); return elements.get(id); }; const context = { document:{getElementById:element}, location:{hash:''}, URLSearchParams, window:{addEventListener:(name, fn) => events.set(name, fn)}, fetch:(path, options) => new Promise(resolve => requests.push({path, options, resolve})), }; const html = fs.readFileSync(process.argv[2], 'utf8'); vm.runInNewContext(html.match(/