// Execute the actual browser bundle against a small DOM implementation. import assert from 'node:assert/strict'; import { readFileSync } from 'node:fs'; import vm from 'node:vm'; import { parseHTML } from 'linkedom'; const { window, document } = parseHTML('
'); vm.runInNewContext(readFileSync(process.argv[2], 'utf8'), { window, document, console, setTimeout }); assert.equal(document.querySelector('h1')?.textContent, 'Hello from WASI'); assert.equal(document.querySelector('p')?.textContent, 'Preact + TypeScript'); assert.equal(document.querySelectorAll('main').length, 1); console.log(`PASS render ${process.argv[2]}: ${document.getElementById('app').innerHTML}`);