Merge branch 'worktree-iso-phase-4' into macros

# Conflicts:
#	shared/static/scripts/sx-browser.js
This commit is contained in:
2026-03-07 18:01:56 +00:00
13 changed files with 1018 additions and 111 deletions

View File

@@ -555,7 +555,9 @@
:eval-source eval-source
:parser-source parser-source
:router-source router-source
:render-source render-source))
:render-source render-source
:deps-source deps-source
:engine-source engine-source))
(defpage testing-page
:path "/testing/<slug>"
@@ -572,6 +574,8 @@
"parser" (run-modular-tests "parser")
"router" (run-modular-tests "router")
"render" (run-modular-tests "render")
"deps" (run-modular-tests "deps")
"engine" (run-modular-tests "engine")
:else (dict))
:content (case slug
"eval" (~testing-spec-content
@@ -602,6 +606,20 @@
:spec-source spec-source
:framework-source framework-source
:server-results server-results)
"deps" (~testing-spec-content
:spec-name "deps"
:spec-title "Dependency Analysis Tests"
:spec-desc "33 tests covering component dependency analysis — scan-refs, scan-components-from-source, transitive-deps, components-needed, scan-io-refs, and component-pure? classification."
:spec-source spec-source
:framework-source framework-source
:server-results server-results)
"engine" (~testing-spec-content
:spec-name "engine"
:spec-title "Engine Tests"
:spec-desc "37 tests covering engine pure functions — parse-time, parse-trigger-spec, default-trigger, parse-swap-spec, parse-retry-spec, next-retry-ms, and filter-params."
:spec-source spec-source
:framework-source framework-source
:server-results server-results)
"runners" (~testing-runners-content)
:else (~testing-overview-content
:server-results server-results)))

View File

@@ -707,6 +707,8 @@ def _run_modular_tests(spec_name: str) -> dict:
"parser": {"file": "test-parser.sx", "needs": ["sx-parse"]},
"router": {"file": "test-router.sx", "needs": []},
"render": {"file": "test-render.sx", "needs": ["render-html"]},
"deps": {"file": "test-deps.sx", "needs": []},
"engine": {"file": "test-engine.sx", "needs": []},
}
specs_to_run = list(SPECS.keys()) if spec_name == "all" else [spec_name]
@@ -721,7 +723,7 @@ def _run_modular_tests(spec_name: str) -> dict:
if not spec:
continue
# Load router from bootstrap if needed
# Load module functions from bootstrap
if sn == "router":
try:
from shared.sx.ref.sx_ref import (
@@ -740,6 +742,46 @@ def _run_modular_tests(spec_name: str) -> dict:
env["make-route-segment"] = make_route_segment
except ImportError:
eval_file("router.sx")
elif sn == "deps":
try:
from shared.sx.ref.sx_ref import (
scan_refs, scan_components_from_source,
transitive_deps, compute_all_deps,
components_needed, page_component_bundle,
page_css_classes, scan_io_refs,
transitive_io_refs, compute_all_io_refs,
component_pure_p,
)
env["scan-refs"] = scan_refs
env["scan-components-from-source"] = scan_components_from_source
env["transitive-deps"] = transitive_deps
env["compute-all-deps"] = compute_all_deps
env["components-needed"] = components_needed
env["page-component-bundle"] = page_component_bundle
env["page-css-classes"] = page_css_classes
env["scan-io-refs"] = scan_io_refs
env["transitive-io-refs"] = transitive_io_refs
env["compute-all-io-refs"] = compute_all_io_refs
env["component-pure?"] = component_pure_p
env["test-env"] = lambda: env
except ImportError:
eval_file("deps.sx")
env["test-env"] = lambda: env
elif sn == "engine":
try:
from shared.sx.ref.sx_ref import (
parse_time, parse_trigger_spec, default_trigger,
parse_swap_spec, parse_retry_spec, filter_params,
)
env["parse-time"] = parse_time
env["parse-trigger-spec"] = parse_trigger_spec
env["default-trigger"] = default_trigger
env["parse-swap-spec"] = parse_swap_spec
env["parse-retry-spec"] = parse_retry_spec
env["next-retry-ms"] = lambda cur, cap: min(cur * 2, cap)
env["filter-params"] = filter_params
except ImportError:
eval_file("engine.sx")
eval_file(spec["file"])
@@ -763,6 +805,8 @@ def _run_modular_tests(spec_name: str) -> dict:
result["parser-source"] = _read_spec_file("test-parser.sx")
result["router-source"] = _read_spec_file("test-router.sx")
result["render-source"] = _read_spec_file("test-render.sx")
result["deps-source"] = _read_spec_file("test-deps.sx")
result["engine-source"] = _read_spec_file("test-engine.sx")
else:
spec = SPECS.get(spec_name)
if spec: