Expand description
The UI harness — pages, islands, boosted navigation and actions.
Behind the ui feature (on by default).
Drive UI controllers in a test. Port of
wabot-ts/src/testing/uiHarness.ts.
UI controllers are served by the REST stack, so this builds on
RestHarness and adds what a page test actually asserts on:
rendered HTML, the islands in it, boosted-navigation fragments and
action responses.
Islands are not hydrated — there is no browser here. What the harness checks is the server’s half of the contract: that a host element is emitted with the right id and props, which is what the client runtime needs to mount anything at all. A mismatch there is the failure that shows up as “the island silently never appeared”.