diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index 745c786e..1994060c 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -765,6 +765,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set my.style.color to \"red\"") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -774,6 +775,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set window.temp to \"red\"") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -926,6 +928,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set my style[\"color\"] to \"red\"") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -935,6 +938,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set foo to \"color\" then set my style[foo] to \"red\"") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -944,6 +948,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set arr to [1, 2, 3] set arr[0] to \"red\" set my *color to arr[0]") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -953,6 +958,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set arr to [1, 2, 3] set idx to 0 set arr[idx] to \"red\" set my *color to arr[0]") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -962,6 +968,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set trackingcode to `foo` then set pdfurl to `https://yyy.xxxxxx.com/path/out/${trackingcode}.pdf` then put pdfurl into me") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1025,6 +1032,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click put \"red\" into my.style.color") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1034,6 +1042,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click put \"red\" into window.temp") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1095,6 +1104,7 @@ (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) (dom-set-attr _el-d1 "id" "d1") + (dom-set-inner-html _el-d1 "foo") (dom-append (dom-body) _el-d1) (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip d2.previousSibling.textContent.should.equal("foo") @@ -1103,6 +1113,7 @@ (hs-cleanup!) (let ((_el-d1 (dom-create-element "div")) (_el-d2 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") + (dom-set-inner-html _el-d1 "foo") (dom-append (dom-body) _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-set-attr _el-d2 "_" "on click put #d1 after #d2") @@ -1116,6 +1127,7 @@ (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put \"foo\" at start of #d1") + (dom-set-inner-html _el-d1 "*") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-dispatch _el-d1 "click" nil) @@ -1126,6 +1138,7 @@ (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put \"foo\" at end of #d1") + (dom-set-inner-html _el-d1 "*") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-dispatch _el-d1 "click" nil) @@ -1233,6 +1246,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click put \"red\" into my style[\"color\"]") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1242,6 +1256,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set foo to \"color\" then put \"red\" into my style[foo]") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1251,6 +1266,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set arr to [1, 2, 3] put \"red\" into arr[0] put arr[0] into my *color") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1260,6 +1276,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click set arr to [1, 2, 3] set idx to 0 put \"red\" into arr[idx] put arr[0] into my *color") + (dom-set-inner-html _el-div "lolwat") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -1740,6 +1757,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def repeatForeverWithReturn() set retVal to 0 repeat forever set retVal to retVal + 1 if retVal == 5 then return retVal end end end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put repeatForeverWithReturn() into my.innerHTML") @@ -1752,6 +1770,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def repeatForeverWithReturn() set retVal to 0 repeat set retVal to retVal + 1 if retVal == 5 then return retVal end end end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put repeatForeverWithReturn() into my.innerHTML") @@ -1791,6 +1810,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def repeatWhileTest() set retVal to 0 repeat while retVal < 5 set retVal to retVal + 1 end return retVal end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put repeatWhileTest() into my.innerHTML") @@ -1803,6 +1823,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def repeatUntilTest() set retVal to 0 repeat until retVal == 5 set retVal to retVal + 1 end return retVal end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click put repeatUntilTest() into my.innerHTML") @@ -1817,6 +1838,7 @@ (dom-set-attr _el-untilTest "id" "untilTest") (dom-append (dom-body) _el-untilTest) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def repeatUntilTest() repeat until event click from #untilTest wait 2ms end return 42 end") (dom-append (dom-body) _el-script) (dom-dispatch _el-untilTest "click" nil) ;; SKIP check: skip value.should.equal(42) @@ -1825,6 +1847,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def getArray() set window.called to (window.called or 0) + 1 return [1, 2, 3] end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click for x in getArray() put x into my.innerHTML end") @@ -1838,6 +1861,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def sprayInto(elt) for x in [1, 2, 3] for y in [1, 2, 3] put x * y at end of elt end end end") (dom-append (dom-body) _el-script) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click call sprayInto(me)") @@ -2969,6 +2993,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click increment my.innerHTML") + (dom-set-inner-html _el-div "3") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3042,6 +3067,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click decrement my.innerHTML") + (dom-set-inner-html _el-div "3") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3094,6 +3120,7 @@ (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click increment #d1's innerHTML") + (dom-set-inner-html _el-d1 "5") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-dispatch (dom-query-by-id "d1") "click" nil) @@ -3104,6 +3131,7 @@ (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "on click increment innerHTML of #d1") + (dom-set-inner-html _el-d1 "5") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-dispatch (dom-query-by-id "d1") "click" nil) @@ -3350,6 +3378,7 @@ (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") + (dom-set-inner-html _el-d2 "foo") (dom-append (dom-body) _el-d2) (dom-dispatch _el-d1 "click" nil) ;; SKIP check: skip div1.innerText.should.equal("") @@ -3528,6 +3557,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-loadedDemo (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "on load put \"Loaded\" into #loadedDemo.innerHTML") (dom-append (dom-body) _el-script) (dom-set-attr _el-loadedDemo "id" "loadedDemo") (dom-append (dom-body) _el-loadedDemo) @@ -3725,6 +3755,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click 1 put 1 + my.innerHTML as Int into my.innerHTML") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3736,6 +3767,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click 1 to 2 put 1 + my.innerHTML as Int into my.innerHTML") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3747,6 +3779,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click 2 and on put 1 + my.innerHTML as Int into my.innerHTML") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3758,6 +3791,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click 1 put \"one\" into my.innerHTML on click 3 put \"three\" into my.innerHTML on click 2 put \"two\" into my.innerHTML") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -3862,6 +3896,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-div2 (dom-create-element "div")) (_el-div3 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "behavior DemoBehavior on foo wait 10ms then set my innerHTML to 'behavior'") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "install DemoBehavior") (dom-append (dom-body) _el-div) @@ -3892,6 +3927,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def throwBar() throw 'bar' end") (dom-append (dom-body) _el-script) (dom-set-attr _el-button "_" "on click throwBar() catch e put e into me") (dom-append (dom-body) _el-button) @@ -4056,6 +4092,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on first click put 1 + my.innerHTML as Int into my.innerHTML") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -4107,6 +4144,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "init set window.foo to 42 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.foo.should.equal(42) )) @@ -4114,6 +4152,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "init set window.foo to 10 init immediately set window.bar to window.foo") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.foo.should.equal(10) )) @@ -4125,6 +4164,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() add .called to #d1 end") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo()") (dom-append (dom-body) _el-div) @@ -4138,6 +4178,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo(str) put str into #d1.innerHTML end") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo(\"called\")") (dom-append (dom-body) _el-div) @@ -4151,6 +4192,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def utils.foo() add .called to #d1 end") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call utils.foo()") (dom-append (dom-body) _el-div) @@ -4164,6 +4206,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() log meend") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo() then add .called to #d1") (dom-append (dom-body) _el-div) @@ -4177,6 +4220,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() wait 1ms log meend") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo() then add .called to #d1") (dom-append (dom-body) _el-div) @@ -4190,6 +4234,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() return \"foo\"end") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo() then put it into #d1.innerText") (dom-append (dom-body) _el-div) @@ -4204,12 +4249,14 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() exit end") (dom-append (dom-body) _el-script) )) (deftest "can return a value asynchronously" (hs-cleanup!) (let ((_el-script (dom-create-element "script")) (_el-div (dom-create-element "div")) (_el-d1 (dom-create-element "div"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() wait 1ms return \"foo\"end") (dom-append (dom-body) _el-script) (dom-set-attr _el-div "_" "on click call foo() then put it into #d1.innerText") (dom-append (dom-body) _el-div) @@ -4224,6 +4271,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() return \"foo\"end") (dom-append (dom-body) _el-script) ;; SKIP check: skip foo().should.equal("foo") )) @@ -4231,6 +4279,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() wait 1ms return \"foo\"end") (dom-append (dom-body) _el-script) ;; SKIP check: skip val.should.equal("foo") )) @@ -4238,6 +4287,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() throw \"bar\"catch e set window.bar to e end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal("bar") )) @@ -4245,6 +4295,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() throw \"bar\"catch e throw e end") (dom-append (dom-body) _el-script) ;; SKIP check: skip true.should.equal(false) ;; SKIP check: skip e.should.equal("bar") @@ -4253,6 +4304,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() throw \"bar\"catch e return 42 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip foo().should.equal(42) )) @@ -4260,6 +4312,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def doh() wait 10ms throw \"bar\"end def foo() call doh()catch e set window.bar to e end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal("bar") )) @@ -4267,6 +4320,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def doh() wait 10ms throw \"bar\"end def foo() call doh()catch e set window.bar to e end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal("bar") )) @@ -4274,6 +4328,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() throw \"bar\"catch e wait 10ms throw e end") (dom-append (dom-body) _el-script) ;; SKIP check: skip reason.should.equal("bar") )) @@ -4281,6 +4336,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() throw \"bar\"catch e wait 10ms return 42 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip val.should.equal(42) )) @@ -4312,6 +4368,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() set window.bar to 10finally set window.bar to 20 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal(20) )) @@ -4319,6 +4376,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() set window.bar to 10 throw \"foo\"finally set window.bar to 20 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal(20) )) @@ -4326,6 +4384,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() set window.bar to 10 call throwsAsyncException()finally set window.bar to 20 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal(20) )) @@ -4333,6 +4392,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() wait a tick then set window.bar to 10finally set window.bar to 20 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal(20) )) @@ -4340,6 +4400,7 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() wait a tick then set window.bar to 10 throw \"foo\"finally set window.bar to 20 end") (dom-append (dom-body) _el-script) ;; SKIP check: skip window.bar.should.equal(20) )) @@ -4347,12 +4408,14 @@ (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() set x to 1 then exit then set x to 2 then return x end") (dom-append (dom-body) _el-script) )) (deftest "can return without a value" (hs-cleanup!) (let ((_el-script (dom-create-element "script"))) (dom-set-attr _el-script "type" "text/hyperscript") + (dom-set-inner-html _el-script "def foo() return end") (dom-append (dom-body) _el-script) )) ) @@ -4363,6 +4426,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click ask \"What is your name?\" then put it into #out") + (dom-set-inner-html _el-button "Ask") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -4374,6 +4438,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click ask \"Name?\" then put it into #out") + (dom-set-inner-html _el-button "Ask") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -4385,6 +4450,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click answer \"Hello!\" then put \"done\" into #out") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -4396,6 +4462,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click answer \"Save?\" with \"Yes\" or \"No\" then put it into #out") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -4407,6 +4474,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click answer \"Save?\" with \"Yes\" or \"No\" then put it into #out") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -4424,6 +4492,7 @@ (dom-set-attr _el-d "id" "d") (dom-append (dom-body) _el-d) (dom-set-attr _el-button "_" "on click show #d") + (dom-set-inner-html _el-button "Open") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4451,6 +4520,7 @@ (dom-set-attr _el-d "id" "d") (dom-append (dom-body) _el-d) (dom-set-attr _el-button "_" "on click open #d") + (dom-set-inner-html _el-button "Open") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4470,6 +4540,7 @@ (dom-set-attr _el-d "id" "d") (dom-append (dom-body) _el-d) (dom-set-attr _el-button "_" "on click open #d") + (dom-set-inner-html _el-button "Open") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4481,6 +4552,7 @@ (dom-set-attr _el-d "id" "d") (dom-append (dom-body) _el-d) (dom-set-attr _el-button "_" "on click close #d") + (dom-set-inner-html _el-button "Close") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4492,6 +4564,7 @@ (dom-set-attr _el-p "id" "p") (dom-append (dom-body) _el-p) (dom-set-attr _el-button "_" "on click open #p") + (dom-set-inner-html _el-button "Open") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4511,6 +4584,7 @@ (dom-append (dom-body) _el-d) (hs-activate! _el-d) (dom-set-attr _el-button "_" "on click send myOpen to #d") + (dom-set-inner-html _el-button "Open") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4535,6 +4609,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click empty") + (dom-set-inner-html _el-div "content") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -4587,6 +4662,7 @@ (dom-set-attr _el-t1 "value" "hello") (dom-append (dom-body) _el-t1) (dom-set-attr _el-button "_" "on click empty #t1") + (dom-set-inner-html _el-button "Empty") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4596,8 +4672,10 @@ (hs-cleanup!) (let ((_el-ta1 (dom-create-element "textarea")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-ta1 "id" "ta1") + (dom-set-inner-html _el-ta1 "some text") (dom-append (dom-body) _el-ta1) (dom-set-attr _el-button "_" "on click empty #ta1") + (dom-set-inner-html _el-button "Empty") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4610,6 +4688,7 @@ (dom-set-attr _el-cb1 "type" "checkbox") (dom-append (dom-body) _el-cb1) (dom-set-attr _el-button "_" "on click empty #cb1") + (dom-set-inner-html _el-button "Empty") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4621,6 +4700,7 @@ (dom-set-attr _el-sel1 "id" "sel1") (dom-append (dom-body) _el-sel1) (dom-set-attr _el-button "_" "on click empty #sel1") + (dom-set-inner-html _el-button "Empty") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4631,6 +4711,7 @@ (dom-set-attr _el-f1 "id" "f1") (dom-append (dom-body) _el-f1) (dom-set-attr _el-button "_" "on click empty #f1") + (dom-set-inner-html _el-button "Empty") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4646,6 +4727,7 @@ (dom-set-attr _el-t3 "value" "hello") (dom-append (dom-body) _el-t3) (dom-set-attr _el-button "_" "on click clear #t3") + (dom-set-inner-html _el-button "Clear") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4724,6 +4806,7 @@ (dom-set-attr _el-div "style" "height: 2000px") (dom-append (dom-body) _el-div) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "Target") (dom-append (dom-body) _el-target) (dom-set-attr _el-div2 "_" "on click go to #target") (dom-append (dom-body) _el-div2) @@ -4736,6 +4819,7 @@ (dom-set-attr _el-div "style" "height: 2000px") (dom-append (dom-body) _el-div) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "Target") (dom-append (dom-body) _el-target) (dom-set-attr _el-div2 "_" "on click go to the top of #target") (dom-append (dom-body) _el-div2) @@ -4760,6 +4844,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "on click halt then add .should-not-happen") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -4818,6 +4903,7 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) ;; HS source has bare quotes or embedded HTML (dom-append (dom-body) _el-button) @@ -4828,6 +4914,7 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-go (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) (dom-set-attr _el-go "id" "go") ;; HS source has bare quotes or embedded HTML @@ -4840,6 +4927,7 @@ (let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") (dom-add-class _el-target "old") + (dom-set-inner-html _el-target "content") (dom-append (dom-body) _el-target) ;; HS source has bare quotes or embedded HTML (dom-append (dom-body) _el-button) @@ -4911,9 +4999,11 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-go (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "original") (dom-append (dom-body) _el-target) (dom-set-attr _el-go "id" "go") (dom-set-attr _el-go "_" "on click set content to \"
morphed
\" then morph #target to content") + (dom-set-inner-html _el-go "go") (dom-append (dom-body) _el-go) (hs-activate! _el-go) (dom-dispatch (dom-query-by-id "go") "click" nil) @@ -4948,6 +5038,7 @@ (dom-set-attr _el-t3 "value" "hello") (dom-append (dom-body) _el-t3) (dom-set-attr _el-button "_" "on click reset #t3") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4960,6 +5051,7 @@ (dom-set-attr _el-cb1 "type" "checkbox") (dom-append (dom-body) _el-cb1) (dom-set-attr _el-button "_" "on click reset #cb1") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4972,6 +5064,7 @@ (dom-set-attr _el-cb2 "type" "checkbox") (dom-append (dom-body) _el-cb2) (dom-set-attr _el-button "_" "on click reset #cb2") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4981,8 +5074,10 @@ (hs-cleanup!) (let ((_el-ta1 (dom-create-element "textarea")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-ta1 "id" "ta1") + (dom-set-inner-html _el-ta1 "original text") (dom-append (dom-body) _el-ta1) (dom-set-attr _el-button "_" "on click reset #ta1") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -4994,6 +5089,7 @@ (dom-set-attr _el-sel1 "id" "sel1") (dom-append (dom-body) _el-sel1) (dom-set-attr _el-button "_" "on click reset #sel1") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -5011,6 +5107,7 @@ (dom-set-attr _el-input1 "value" "two") (dom-append (dom-body) _el-input1) (dom-set-attr _el-button "_" "on click reset .resettable") + (dom-set-inner-html _el-button "Reset") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -5025,6 +5122,7 @@ (dom-set-attr _el-div "style" "height: 2000px") (dom-append (dom-body) _el-div) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "Target") (dom-append (dom-body) _el-target) (dom-set-attr _el-div2 "_" "on click scroll to #target") (dom-append (dom-body) _el-div2) @@ -5038,6 +5136,7 @@ (dom-append (dom-body) _el-div) (dom-set-attr _el-target "id" "target") (dom-set-attr _el-target "style" "height: 200px") + (dom-set-inner-html _el-target "Target") (dom-append (dom-body) _el-target) (dom-set-attr _el-div2 "_" "on click scroll to the top of #target") (dom-append (dom-body) _el-div2) @@ -5082,6 +5181,7 @@ (dom-append (dom-body) _el-box) (dom-set-attr _el-go "id" "go") (dom-set-attr _el-go "_" "on click scroll #box down by 200px") + (dom-set-inner-html _el-go "go") (dom-append (dom-body) _el-go) (hs-activate! _el-go) (dom-dispatch (dom-query-by-id "go") "click" nil) @@ -5094,6 +5194,7 @@ (dom-append (dom-body) _el-box) (dom-set-attr _el-go "id" "go") (dom-set-attr _el-go "_" "on click scroll to #item in #box") + (dom-set-inner-html _el-go "go") (dom-append (dom-body) _el-go) (hs-activate! _el-go) (dom-dispatch (dom-query-by-id "go") "click" nil) @@ -5106,6 +5207,7 @@ (dom-append (dom-body) _el-box) (dom-set-attr _el-go "id" "go") (dom-set-attr _el-go "_" "on click scroll #box right by 300px") + (dom-set-inner-html _el-go "go") (dom-append (dom-body) _el-go) (hs-activate! _el-go) (dom-dispatch (dom-query-by-id "go") "click" nil) @@ -5121,6 +5223,7 @@ (dom-set-attr _el-inp "value" "hello world") (dom-append (dom-body) _el-inp) (dom-set-attr _el-button "_" "on click select #inp") + (dom-set-inner-html _el-button "Select") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -5129,8 +5232,10 @@ (hs-cleanup!) (let ((_el-ta (dom-create-element "textarea")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-ta "id" "ta") + (dom-set-inner-html _el-ta "some text") (dom-append (dom-body) _el-ta) (dom-set-attr _el-button "_" "on click select #ta") + (dom-set-inner-html _el-button "Select") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -5149,8 +5254,10 @@ (hs-cleanup!) (let ((_el-text (dom-create-element "p")) (_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-text "id" "text") + (dom-set-inner-html _el-text "Hello World") (dom-append (dom-body) _el-text) (dom-set-attr _el-button "_" "on click put the selection into #out") + (dom-set-inner-html _el-button "Get") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -5180,8 +5287,10 @@ (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-set-attr _el-a "id" "a") + (dom-set-inner-html _el-a "x") (dom-append (dom-body) _el-a) (dom-set-attr _el-b "id" "b") + (dom-set-inner-html _el-b "y") (dom-append (dom-body) _el-b) (dom-dispatch (dom-query-by-id "d1") "click" nil) (assert= (dom-text-content (dom-query-by-id "a")) "world") @@ -5276,6 +5385,7 @@ (hs-cleanup!) (let ((_el-textarea (dom-create-element "textarea")) (_el-span (dom-create-element "span"))) (dom-set-attr _el-textarea "_" "bind $bio to me") + (dom-set-inner-html _el-textarea "Hello world") (dom-append (dom-body) _el-textarea) (hs-activate! _el-textarea) (dom-set-attr _el-span "_" "when $bio changes put it into me") @@ -5323,6 +5433,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "bind $opacity and *opacity") + (dom-set-inner-html _el-div "visible") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5431,6 +5542,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "bind .dark and $darkMode") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5438,6 +5550,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "bind .dark and $darkMode") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5445,6 +5558,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "bind .highlight to $highlighted") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5530,6 +5644,7 @@ (dom-set-attr _el-dark-toggle "type" "checkbox") (dom-append (dom-body) _el-dark-toggle) (dom-set-attr _el-div "_" "bind .dark and #dark-toggle's checked") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5622,6 +5737,7 @@ (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "bind $text to me") (dom-set-attr _el-div "contenteditable" "true") + (dom-set-inner-html _el-div "initial") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5682,6 +5798,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "live set *opacity to $opacity") + (dom-set-inner-html _el-div "visible") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5733,6 +5850,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "live then if $isActive add .active to me else remove .active from me end then end") + (dom-set-inner-html _el-div "test") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5740,6 +5858,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "live then if $isVisible set *display to 'block' else set *display to 'none' end then end") + (dom-set-inner-html _el-div "content") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -5830,6 +5949,7 @@ (hs-cleanup!) (let ((_el-people-tmpl (dom-create-element "template")) (_el-div (dom-create-element "div"))) (dom-set-attr _el-people-tmpl "id" "people-tmpl") + (dom-set-inner-html _el-people-tmpl "#for p in people\\n\\n#end") (dom-append (dom-body) _el-people-tmpl) (dom-set-attr _el-div "_" "live render #people-tmpl with people: $people then put it into my.innerHTML end") (dom-append (dom-body) _el-div) @@ -5839,6 +5959,7 @@ (hs-cleanup!) (let ((_el-items-tmpl (dom-create-element "template")) (_el-div (dom-create-element "div"))) (dom-set-attr _el-items-tmpl "id" "items-tmpl") + (dom-set-inner-html _el-items-tmpl "#for item in items\\n\\n#end") (dom-append (dom-body) _el-items-tmpl) (dom-set-attr _el-div "_" "live render #items-tmpl with items: $items then put it into my.innerHTML end") (dom-append (dom-body) _el-div) @@ -5939,6 +6060,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "init set :count to 0 end then when :count changes put it into me end then on click increment :count") + (dom-set-inner-html _el-div "0") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -5969,6 +6091,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "when $neverSet changes put 'synced' into me") + (dom-set-inner-html _el-div "original") (dom-append (dom-body) _el-div) (hs-activate! _el-div) )) @@ -6052,6 +6175,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-set-attr _el-div "_" "init set :label to 'initial' end then when :label changes put it into me end then on click set :label to 'clicked'") + (dom-set-inner-html _el-div "initial") (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) @@ -6076,10 +6200,12 @@ (let ((_el-d1 (dom-create-element "div")) (_el-d2 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") (dom-set-attr _el-d1 "_" "init set :value to 'A' end then when :value changes put it into me end then on click set :value to 'A-clicked'") + (dom-set-inner-html _el-d1 "A") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-set-attr _el-d2 "_" "init set :value to 'B' end then when :value changes put it into me end then on click set :value to 'B-clicked'") + (dom-set-inner-html _el-d2 "B") (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) (dom-dispatch (dom-query-by-id "d1") "click" nil) @@ -6177,6 +6303,7 @@ (dom-set-attr _el-style-target "id" "style-target") (dom-set-attr _el-style-target "_" "when (*opacity) changes put it into me") (dom-set-attr _el-style-target "style" "opacity: 1") + (dom-set-inner-html _el-style-target "not fired") (dom-append (dom-body) _el-style-target) (hs-activate! _el-style-target) )) @@ -6264,9 +6391,11 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click call failAsync() then put 'should not reach' into #out then") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") + (dom-set-inner-html _el-out "original") (dom-append (dom-body) _el-out) (dom-dispatch _el-button "click" nil) (assert= (dom-text-content (dom-query-by-id "out")) "original") @@ -6275,6 +6404,7 @@ (hs-cleanup!) (let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div"))) (dom-set-attr _el-button "_" "on click call failAsync() then put 'unreachable' into #out then catch e then put e.message into #out then") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -6439,9 +6569,11 @@ (dom-set-attr _el-state-holder "id" "state-holder") (dom-append (dom-body) _el-state-holder) (dom-set-attr _el-button "_" "on click set ^count on #state-holder to 99") + (dom-set-inner-html _el-button "set") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-span "_" "on click put ^count on #state-holder into me") + (dom-set-inner-html _el-span "read") (dom-append (dom-body) _el-span) (hs-activate! _el-span) (dom-dispatch _el-button "click" nil) @@ -6595,6 +6727,7 @@ (hs-cleanup!) (let ((_el-template (dom-create-element "template"))) (dom-set-attr _el-template "_" "init set ^show to true") + (dom-set-inner-html _el-template "#if ^show#end") (dom-append (dom-body) _el-template) (hs-activate! _el-template) )) @@ -6626,6 +6759,7 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) ;; HS source has bare quotes or embedded HTML (dom-append (dom-body) _el-button) @@ -6636,8 +6770,10 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) (dom-set-attr _el-button "_" "on click make a then put \"moved\" into it then set #target to it") + (dom-set-inner-html _el-button "go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -6672,6 +6808,7 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-target1 (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) (dom-set-attr _el-target1 "id" "target") ;; HS source has bare quotes or embedded HTML @@ -6687,6 +6824,7 @@ (dom-set-attr _el-container "id" "container") (dom-append (dom-body) _el-container) (dom-set-attr _el-button "_" "on click swap #a with #b") + (dom-set-inner-html _el-button "go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -6695,8 +6833,10 @@ (hs-cleanup!) (let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button"))) (dom-set-attr _el-target "id" "target") + (dom-set-inner-html _el-target "old") (dom-append (dom-body) _el-target) (dom-set-attr _el-button "_" "on click put \"new\" into #target") + (dom-set-inner-html _el-button "go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -6718,6 +6858,7 @@ (dom-set-attr _el-list "id" "list") (dom-append (dom-body) _el-list) (dom-set-attr _el-button "_" "on click set items to
  • in #list then set matches to items where it matches .yes then put matches mapped to its textContent into #out") + (dom-set-inner-html _el-button "Go") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-set-attr _el-out "id" "out") @@ -6804,6 +6945,7 @@ (dom-set-attr _el-template "component" "test-where-comp") (dom-append (dom-body) _el-template) (hs-activate! _el-template) + (dom-set-inner-html _el-test-where-comp "go") (dom-append (dom-body) _el-test-where-comp) (dom-dispatch _el-test-where-comp "click" nil) (assert= (dom-text-content _el-test-where-comp) "1") @@ -6936,6 +7078,7 @@ (let ((_el-template (dom-create-element "template")) (_el-test-cond (dom-create-element "test-cond"))) (dom-set-attr _el-template "_" "init set ^show to true") (dom-set-attr _el-template "component" "test-cond") + (dom-set-inner-html _el-template "#if ^show#end") (dom-append (dom-body) _el-template) (hs-activate! _el-template) (dom-append (dom-body) _el-test-cond) @@ -7016,6 +7159,7 @@ (dom-set-attr _el-test-args-bind "count" "$count") (dom-append (dom-body) _el-test-args-bind) (dom-set-attr _el-button "_" "on click increment $count") + (dom-set-inner-html _el-button "+") (dom-append (dom-body) _el-button) (hs-activate! _el-button) (dom-dispatch _el-button "click" nil) @@ -7205,9 +7349,11 @@ (dom-append (dom-body) _el-div) (dom-set-attr _el-s1 "id" "s1") (dom-set-attr _el-s1 "style" "display:none") + (dom-set-inner-html _el-s1 "A") (dom-append (dom-body) _el-s1) (dom-set-attr _el-s2 "id" "s2") (dom-set-attr _el-s2 "style" "display:none") + (dom-set-inner-html _el-s2 "B") (dom-append (dom-body) _el-s2) (dom-dispatch _el-div "click" nil) (assert (dom-visible? (dom-query-by-id "s1"))) @@ -7219,10 +7365,13 @@ ;; HS source has bare quotes or embedded HTML (dom-append (dom-body) _el-div) (dom-set-attr _el-p "style" "display:none") + (dom-set-inner-html _el-p "yes") (dom-append (dom-body) _el-p) (dom-set-attr _el-p2 "style" "display:none") + (dom-set-inner-html _el-p2 "no") (dom-append (dom-body) _el-p2) (dom-set-attr _el-out "id" "out") + (dom-set-inner-html _el-out "--") (dom-append (dom-body) _el-out) (dom-dispatch _el-div "click" nil) (assert= (dom-text-content (dom-query-by-id "out")) "some") @@ -7712,8 +7861,10 @@ (hs-cleanup!) (let ((_el-b1 (dom-create-element "button")) (_el-b2 (dom-create-element "button"))) (dom-set-attr _el-b1 "id" "b1") + (dom-set-inner-html _el-b1 "Disabled") (dom-append (dom-body) _el-b1) (dom-set-attr _el-b2 "id" "b2") + (dom-set-inner-html _el-b2 "Enabled") (dom-append (dom-body) _el-b2) )) (deftest "is still does equality when rhs variable exists" @@ -7834,12 +7985,14 @@ (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) (dom-set-attr _el-d2 "id" "d2") + (dom-set-inner-html _el-d2 "hello") (dom-append (dom-body) _el-d2) )) (deftest "can access property of previous element with possessive" (hs-cleanup!) (let ((_el-d1 (dom-create-element "div")) (_el-d2 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") + (dom-set-inner-html _el-d1 "world") (dom-append (dom-body) _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) diff --git a/tests/playwright/generate-sx-tests.py b/tests/playwright/generate-sx-tests.py index 83dd8957..4488b7dc 100644 --- a/tests/playwright/generate-sx-tests.py +++ b/tests/playwright/generate-sx-tests.py @@ -58,7 +58,9 @@ def parse_html(html): stack.pop() def handle_data(self, data): - pass + # Only capture text for top-level elements with no children + if stack and stack[-1]['depth'] == 0 and len(stack) == 1: + stack[-1]['inner'] += data.strip() Parser().feed(html) return elements @@ -525,6 +527,9 @@ def emit_element_setup(lines, elements, var_names): continue aval_escaped = aval.replace('"', '\\"') lines.append(f' (dom-set-attr {var} "{aname}" "{aval_escaped}")') + if el['inner']: + inner_escaped = el['inner'].replace('\\', '\\\\').replace('"', '\\"') + lines.append(f' (dom-set-inner-html {var} "{inner_escaped}")') lines.append(f' (dom-append (dom-body) {var})') if el['hs']: lines.append(f' (hs-activate! {var})')