45 lines
1.8 KiB
Markdown
45 lines
1.8 KiB
Markdown
|
|
# Theseus dev/test harness
|
||
|
|
|
||
|
|
Two ways to drive Theseus's resolution + content path headlessly, for testing
|
||
|
|
and debugging without clicking through the GUI. Both use the **real** resolver
|
||
|
|
(`Argus/src/lib/resolver-web.js`) and gateway path the shipped app uses.
|
||
|
|
|
||
|
|
## `selftest.js` — full render (Electron)
|
||
|
|
|
||
|
|
Runs the actual `serveBns` protocol handler (imported from `main.js`) in a
|
||
|
|
hidden offscreen Electron window, loads a `bns://` name, lets its JavaScript
|
||
|
|
execute, then reports what really rendered and writes a screenshot.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npx electron dev/selftest.js hello.bch
|
||
|
|
npx electron dev/selftest.js coinspectrum.deviant.bch # JS-driven Sia site
|
||
|
|
THESEUS_SETTLE=8000 npx electron dev/selftest.js <name> # wait longer for data
|
||
|
|
```
|
||
|
|
|
||
|
|
Output: a JSON report (title, badge, stylesheet/script counts, local vs external
|
||
|
|
broken-image counts, visible-text length, failed loads, `verdict`) plus
|
||
|
|
`dev-out/render.png` and `dev-out/render.html`. Exit 0 = PASS. The verdict counts
|
||
|
|
only the site's own `bns://` assets — external CDN images are informational.
|
||
|
|
|
||
|
|
This is the faithful version of manual tests #2 (Sia-via-gateway rendering) and
|
||
|
|
#3 (multi-TLD badge). `main.js` exports its handler and skips auto-launch when
|
||
|
|
`THESEUS_NO_AUTOSTART=1`, which the harness sets.
|
||
|
|
|
||
|
|
## `probe-site.mjs` — content path only (Node, no Electron)
|
||
|
|
|
||
|
|
Fast check with no display or Electron: resolves a name, fetches the index
|
||
|
|
through the gateway exactly as `serveBns` does (with the `<base>` strip), and
|
||
|
|
fetches each **static** same-origin asset, reporting status/content-type.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
node dev/probe-site.mjs coinspectrum.deviant.bch
|
||
|
|
```
|
||
|
|
|
||
|
|
Limitation: static-HTML only. It cannot see assets a page builds at runtime in
|
||
|
|
JavaScript — use `selftest.js` for JS-driven sites.
|
||
|
|
|
||
|
|
## `dev-out/`
|
||
|
|
|
||
|
|
Generated render artifacts (screenshot + HTML dump). Safe to delete; regenerated
|
||
|
|
on each `selftest.js` run.
|