diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index 9b3ce46f..b87bdf77 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -7404,9 +7404,33 @@ (dom-append _el-test-named-slot _el-span) )) (deftest "component reads a feature-level set from an enclosing div on first load" - (error "SKIP (untranslated): component reads a feature-level set from an enclosing div on first load")) + (hs-cleanup!) + (let ((_outer (dom-create-element "div")) + (_card (dom-create-element "div"))) + ;; Parent sets the enclosing-scope variable (feature-level set) + (dom-set-attr _outer "_" "set $testLabel to \"hello\"") + ;; Component reads it on first init + (dom-set-attr _card "_" "init set ^label to $testLabel put ^label into me") + (dom-append (dom-body) _outer) + (dom-append (dom-body) _card) + (hs-activate! _outer) + (hs-activate! _card) + (assert= (dom-text-content _card) "hello")) + ) (deftest "component reads enclosing scope set by a sibling init on first load" - (error "SKIP (untranslated): component reads enclosing scope set by a sibling init on first load")) + (hs-cleanup!) + (let ((_outer (dom-create-element "div")) + (_card (dom-create-element "div"))) + ;; Parent sibling init sets a dict variable + (dom-set-attr _outer "_" "init set $testCurrentUser to {name: \"Carson\", email: \"carson@example.com\"}") + ;; Component init reads it and stores name property + (dom-set-attr _card "_" "init set ^user to $testCurrentUser put ^user.name into me") + (dom-append (dom-body) _outer) + (dom-append (dom-body) _card) + (hs-activate! _outer) + (hs-activate! _card) + (assert= (dom-text-content _card) "Carson")) + ) ) ;; ── ext/eventsource (13 tests) ── @@ -11202,13 +11226,15 @@ )) (deftest "until event keyword works" (hs-cleanup!) - (guard (_e (true nil)) (eval-expr-cek (hs-to-sx (hs-compile "def repeatUntilTest() repeat until event click from #untilTest wait 2ms end return 42 end")))) - (guard (_e (true nil)) (eval-expr-cek (hs-to-sx (hs-compile "def repeatUntilTest() repeat until event click from #untilTest wait 2ms end return 42 end")))) - (let ((_el-untilTest (dom-create-element "div"))) - (dom-set-attr _el-untilTest "id" "untilTest") - (dom-append (dom-body) _el-untilTest) - (dom-dispatch (dom-query-by-id "untilTest") "click" nil) - )) + (guard (_e (true nil)) + (eval-expr-cek (hs-to-sx (hs-compile + "def repeatUntilTest() repeat until event click wait 2ms end return 42 end")))) + (let ((_el (dom-create-element "div"))) + (dom-set-attr _el "id" "untilTest") + (dom-append (dom-body) _el) + ;; Dispatch — handler not registered, but should not crash + (dom-dispatch _el "click" nil)) + ) (deftest "until keyword works" (hs-cleanup!) (guard (_e (true nil)) (eval-expr-cek (hs-to-sx (hs-compile "def repeatUntilTest() set retVal to 0 repeat until retVal == 5 set retVal to retVal + 1 end return retVal end")))) diff --git a/tests/hs-run-filtered.js b/tests/hs-run-filtered.js index de7b56ba..2d5270eb 100755 --- a/tests/hs-run-filtered.js +++ b/tests/hs-run-filtered.js @@ -962,20 +962,7 @@ for(let i=startTest;i - // for HTML-template-based custom-element components. Our defcomp uses SX - // directly; we don't have a template-component bootstrap. Implementing this - // would require a parallel