fix(js): expose runtime API before startup

Assign window.hemx before startup side effects so constrained browser contexts can still inspect the runtime and root state even if bootstrap work reports errors.

req: runtime/002
This commit is contained in:
slhx agent
2026-06-05 20:25:58 +02:00
parent ce4c2e086d
commit 4b83169207
2 changed files with 31 additions and 6 deletions
+16
View File
@@ -1,3 +1,19 @@
#[test]
fn runtime_exposes_debug_api_before_startup_side_effects() {
// req: runtime/002
let source = hemx_js::RUNTIME_JS;
let api = source
.find("window.hemx = Object.freeze")
.expect("runtime exposes browser API");
let start = source
.find("if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", start)")
.expect("runtime starts after declaration");
assert!(api < start);
assert!(source.contains("try {\n bootstrapState(root);"));
assert!(source.contains("emit(root, \"hemx:error\", String(error));"));
}
#[test]
fn runtime_posts_urlencoded_forms_by_default() {
let source = hemx_js::RUNTIME_JS;