1
0
forked from rosa/hakurei

17 Commits

Author SHA1 Message Date
Kat
58b879f48f TODO: docs maybe?? 2026-03-23 06:30:33 +11:00
Kat
252e9a4efc TODO: actually write tests lol 2026-03-23 06:30:33 +11:00
Kat
7cba25eb40 TODO: relocate test code 2026-03-23 06:30:33 +11:00
Kat
20cfb8201c cmd/pkgserver: aria-describe test node summary with state
The summary marker does not appear in the AOM, so setting its alt text
is fruitless.
2026-03-23 06:30:32 +11:00
Kat
4385922bb8 cmd/pkgserver: provide role descriptions for test nodes in web UI 2026-03-23 06:30:32 +11:00
Kat
82c73c36cf cmd/pkgserver: fix dark mode in test web UI 2026-03-23 06:30:32 +11:00
Kat
dc883c9c49 cmd/pkgserver: serialize JS enums as ints instead of strings 2026-03-23 06:30:32 +11:00
Kat
6888033e8d cmd/pkgserver: set exit code when running JS tests from CLI 2026-03-23 06:30:32 +11:00
Kat
7c39b32470 cmd/pkgserver: expose verbose StreamReporter flag via CLI 2026-03-23 06:30:32 +11:00
Kat
52b9b7754a cmd/pkgserver: implement skipping JS tests from the DSL 2026-03-23 06:30:32 +11:00
Kat
0d0c659649 cmd/pkgserver: allow non-global JS test suites 2026-03-23 06:30:32 +11:00
Kat
47962b1f55 cmd/pkgserver: serialize raw log list for go test consumption 2026-03-23 06:30:32 +11:00
Kat
f160d1ab7f cmd/pkgserver: add JSON reporter to facilitate go test integration 2026-03-23 06:30:32 +11:00
Kat
9fbd26217a cmd/pkgserver: fix multi-line JS test output display 2026-03-23 06:30:32 +11:00
Kat
79e0bacf76 cmd/pkgserver: implement JS test DSL and runner 2026-03-23 06:30:32 +11:00
Kat
d552b98d42 cmd/pkgserver: move StreamReporter display() to Reporter interface 2026-03-23 06:30:32 +11:00
Kat
795f27205c cmd/pkgserver: add DOM reporter for JS tests 2026-03-23 06:30:32 +11:00

View File

@@ -281,10 +281,8 @@ export class StreamReporter implements Reporter {
}
}
function assertGetElementById(id: string): HTMLElement {
let elem = document.getElementById(id);
if (elem == null) throw new ReferenceError(`element with ID '${id}' missing from DOM`);
return elem;
function throwNotInDOMError(id: string): never {
throw new ReferenceError(`element with ID '${id}' missing from DOM`);
}
export class DOMReporter implements Reporter {
@@ -293,12 +291,16 @@ export class DOMReporter implements Reporter {
update(path: string[], result: TestResult) {
if (path.length === 0) throw new RangeError("path is empty");
if (result.state === "skip") {
assertGetElementById("skip-counter-text").classList.remove("hidden");
const text = document.getElementById("skip-counter-text");
if (!text) throwNotInDOMError("skip-counter-text");
text.classList.remove("hidden");
}
const counter = assertGetElementById(`${result.state}-counter`);
const counter = document.getElementById(`${result.state}-counter`);
if (!counter) throwNotInDOMError(`${result.state}-counter`);
counter.innerText = (Number(counter.innerText) + 1).toString();
let parent = assertGetElementById("root");
let parent = document.getElementById("root");
if (!parent) throwNotInDOMError("root");
for (const node of path) {
let child: HTMLDetailsElement | null = null;
let summary: HTMLElement | null = null;