0.48 — UI tests by node path, and reports from an outside runner
0.48.0 adds three formats, ess-ui-test/1, ess-ui-test-report/1 and
ess-conformance-results/1, described in the formats reference.
Specifications, suites and deltas keep their earlier formats.
UI tests by node path
An ess-ui-test/1 file tests an ess-ui/1 document. Each step is one line: open a page, select
a node by its canonical node path (a row by its key), type, choose, act, page, expect text, rows
or a section's state, play a live event, advance time, or expect a command with given input.
A test can replace the document's fixtures.
ess ui test --path <document> <tests…> runs the tests headless against the terminal renderer
and writes ess-ui-test-report/1. --playwright <out> writes a Playwright spec for the
generated React project from the same file; it selects [data-ui-path], and a step the terminal
cannot check is test.fixme in the spec with the same reason, so one file has one verdict. The
reference compares the language with selector-based browser
tests.
Reports from an outside runner
ess verify conform report --suite <suite> --results <results.json> --implementation <name> --report-out <path> writes an ess-conformance-report/2 from the per-scenario results of a
runner written in any language. Coverage, the suite reference and policy come from ESS's own
admission of the suite; the producer profile, external-scenario-status/1, says ESS executed
nothing. aep 0.66.0 records such a report as evidence.
A served 501 says whether the effect was committed
Every served 501 body carries committed: false for an unmet obligation, where nothing was
written, and true when the command took effect and delivering what it published failed. Rust
shells see the second case as Refused::Undelivered.
Also
ess ui check --model <dir>reads the specification through the directory'sess-inputs.yaml.- An
essthat delegates to a pinned release says so on stderr for every command (ESS_TOOLCHAIN_QUIET=1silences it).