Phase 4: Move web framework files to web/ and web/tests/

signals.sx, engine.sx, orchestration.sx, boot.sx, router.sx, deps.sx,
forms.sx, page-helpers.sx, adapters, boundary files → web/
Web tests → web/tests/
Test runners updated with _SPEC_TESTS and _WEB_TESTS paths.
All 89 tests pass (20 signal + 43 CEK + 26 CEK reactive).
Both bootstrappers build fully (5993 Python lines, 387KB JS).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 02:26:18 +00:00
parent 7036621be8
commit 72eaefac13
15 changed files with 2111 additions and 17 deletions

View File

@@ -5,6 +5,8 @@ import os, sys, subprocess, tempfile
_HERE = os.path.dirname(os.path.abspath(__file__))
_PROJECT = os.path.abspath(os.path.join(_HERE, "..", "..", ".."))
_SPEC_TESTS = os.path.join(_PROJECT, "spec", "tests")
_WEB_TESTS = os.path.join(_PROJECT, "web", "tests")
sys.path.insert(0, _PROJECT)
# Bootstrap a fresh sx_ref with continuations enabled
@@ -87,7 +89,7 @@ env["push-suite"] = _push_suite
env["pop-suite"] = _pop_suite
# Load test framework
with open(os.path.join(_HERE, "test-framework.sx")) as f:
with open(os.path.join(_SPEC_TESTS, "test-framework.sx")) as f:
for expr in parse_all(f.read()):
trampoline(eval_expr(expr, env))
@@ -96,7 +98,7 @@ print("=" * 60)
print("Running test-continuations.sx")
print("=" * 60)
with open(os.path.join(_HERE, "test-continuations.sx")) as f:
with open(os.path.join(_SPEC_TESTS, "test-continuations.sx")) as f:
for expr in parse_all(f.read()):
trampoline(eval_expr(expr, env))