diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index a7c2e64c..bb9d9c68 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -1120,7 +1120,13 @@ (hs-activate! _el-input) )) (deftest "unsupported element: bind to plain div errors" - (error "SKIP (untranslated): unsupported element: bind to plain div errors")) + (hs-cleanup!) + (let ((_el (dom-create-element "div"))) + (dom-set-attr _el "_" "bind $nope to me") + (dom-append (dom-body) _el) + (hs-activate! _el) + (assert (nil? (host-get (host-global "window") "$nope")))) + ) (deftest "variable drives class: setting variable adds/removes class" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) @@ -14096,7 +14102,13 @@ end") (hs-activate! _el-d2) )) (deftest "local variable in when expression produces a parse error" - (error "SKIP (untranslated): local variable in when expression produces a parse error")) + (hs-cleanup!) + (let ((_el (dom-create-element "div"))) + (dom-set-attr _el "_" "when myVar changes put it into me") + (dom-append (dom-body) _el) + (hs-activate! _el) + (assert= (first (hs-compile "when myVar changes put it into me")) (quote when-feat-no-op))) + ) (deftest "math on tracked symbols works" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) diff --git a/tests/playwright/generate-sx-tests.py b/tests/playwright/generate-sx-tests.py index 4f1609af..257ce68b 100644 --- a/tests/playwright/generate-sx-tests.py +++ b/tests/playwright/generate-sx-tests.py @@ -415,6 +415,24 @@ MANUAL_TEST_BODIES = { ' (hs-activate! _el))', ' (assert (nil? caught))))', ], + # bind: bind $nope to a plain div does nothing — $nope stays nil + "unsupported element: bind to plain div errors": [ + ' (hs-cleanup!)', + ' (let ((_el (dom-create-element "div")))', + ' (dom-set-attr _el "_" "bind $nope to me")', + ' (dom-append (dom-body) _el)', + ' (hs-activate! _el)', + ' (assert (nil? (host-get (host-global "window") "$nope"))))', + ], + # when: non-attribute reference in when...changes is a parse error (when-feat-no-op) + "local variable in when expression produces a parse error": [ + ' (hs-cleanup!)', + ' (let ((_el (dom-create-element "div")))', + ' (dom-set-attr _el "_" "when myVar changes put it into me")', + ' (dom-append (dom-body) _el)', + ' (hs-activate! _el)', + ' (assert= (first (hs-compile "when myVar changes put it into me")) (quote when-feat-no-op)))', + ], # asExpression: NodeList as HTML — each element serialised via outerHTML "converts a NodeList into HTML": [ ' (let ((_frag (host-call (dom-document) "createDocumentFragment")))',