From ce4579badbdb02886b21c70cc3d3721333b9232f Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 10 Apr 2026 15:11:03 +0000 Subject: [PATCH] =?UTF-8?q?Generator:=20context-aware=20variable=20refs=20?= =?UTF-8?q?=E2=80=94=20444/831=20(53%,=20+20)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed ref() to map upstream JS variable names to let-bound SX variables using element context (tag→var, id→var, make-return→last-var). Fixes if (0→14/19), put (14→18), on (20→23), and other categories where the upstream test uses make() return variables like d1, div, btn. Co-Authored-By: Claude Opus 4.6 (1M context) --- spec/tests/test-hyperscript-behavioral.sx | 874 +++++++++++----------- tests/playwright/generate-sx-tests.py | 80 +- tests/playwright/hs-behavioral.spec.js | 11 + 3 files changed, 495 insertions(+), 470 deletions(-) diff --git a/spec/tests/test-hyperscript-behavioral.sx b/spec/tests/test-hyperscript-behavioral.sx index c515fe04..f415239a 100644 --- a/spec/tests/test-hyperscript-behavioral.sx +++ b/spec/tests/test-hyperscript-behavioral.sx @@ -54,7 +54,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "bar") "foo")) + (assert (dom-has-class? _el-bar "foo")) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can add to query in me" @@ -64,7 +64,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "p1") "foo")) + (assert (dom-has-class? _el-div "foo")) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can add to children" @@ -74,7 +74,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "p1") "foo")) + (assert (dom-has-class? _el-div "foo")) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can add non-class attributes" @@ -137,9 +137,9 @@ (dom-add-class _el-div2 "bar") (dom-add-class _el-div2 "doh") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div2") "rey"))) - (assert (dom-has-class? (dom-query-by-id "div3") "rey")) + (dom-dispatch _el-div2 "click" nil) + (assert (not (dom-has-class? _el-div2 "rey"))) + (assert (dom-has-class? _el-div2 "rey")) )) (deftest "can filter property addition via the when clause" (hs-cleanup!) @@ -152,9 +152,9 @@ (dom-add-class _el-div2 "bar") (dom-add-class _el-div2 "doh") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-attr? (dom-query-by-id "div2") "rey"))) - (assert (dom-has-attr? (dom-query-by-id "div3") "rey")) + (dom-dispatch _el-div2 "click" nil) + (assert (not (dom-has-attr? _el-div2 "rey"))) + (assert (dom-has-attr? _el-div2 "rey")) )) (deftest "can add to an HTMLCollection" (hs-cleanup!) @@ -164,7 +164,7 @@ (hs-activate! _el-div) (dom-set-attr _el-bar "id" "bar") (dom-append (dom-body) _el-bar) - (dom-dispatch (dom-query-by-id "div1") "click" nil) + (dom-dispatch _el-bar "click" nil) ;; SKIP check: skip byId("c1").classList.contains("foo").should.equal(false) ;; SKIP check: skip byId("c2").classList.contains("foo").should.equal(false) ;; SKIP check: skip byId("c1").classList.contains("foo").should.equal(true) @@ -269,7 +269,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "bar") "foo"))) + (assert (not (dom-has-class? _el-bar "foo"))) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can remove non-class attributes" @@ -301,18 +301,18 @@ (hs-activate! _el-div) (dom-set-attr _el-that "id" "that") (dom-append (dom-body) _el-that) - (dom-dispatch _el-div "click" nil) - (assert (not (nil? (dom-parent (dom-query-by-id "div2"))))) - (assert (nil? (dom-parent (dom-query-by-id "div2")))) + (dom-dispatch _el-that "click" nil) + (assert (not (nil? (dom-parent _el-that)))) + (assert (nil? (dom-parent _el-that))) )) (deftest "can remove parent element" (hs-cleanup!) (let ((_el-p1 (dom-create-element "div"))) (dom-set-attr _el-p1 "id" "p1") (dom-append (dom-body) _el-p1) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert (not (nil? (dom-parent _el-div)))) - (assert (nil? (dom-parent _el-div))) + (dom-dispatch _el-p1 "click" nil) + (assert (not (nil? (dom-parent _el-p1)))) + (assert (nil? (dom-parent _el-p1))) )) (deftest "can remove multiple class refs" (hs-cleanup!) @@ -332,7 +332,7 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-append (dom-body) _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip div.innerHTML.includes("foo").should.equal(true) ;; SKIP check: skip div.innerHTML.includes("bar").should.equal(true) ;; SKIP check: skip div.innerHTML.includes("doh").should.equal(true) @@ -429,7 +429,7 @@ (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) (dom-dispatch _el-div "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "bar") "foo"))) + (assert (not (dom-has-class? _el-bar "foo"))) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can toggle non-class attributes" @@ -449,10 +449,10 @@ (dom-set-attr _el-select "_" "on click toggle [@foo=\"bar\"]") (dom-append (dom-body) _el-select) (hs-activate! _el-select) - (dom-dispatch (dom-query-by-id "select") "click" nil) - (dom-dispatch (dom-query-by-id "select") "click" nil) - (assert (not (dom-has-attr? (dom-query-by-id "select") "foo"))) - (assert= "bar" (dom-get-attr (dom-query-by-id "select") "foo")) + (dom-dispatch _el-select "click" nil) + (dom-dispatch _el-select "click" nil) + (assert (not (dom-has-attr? _el-select "foo"))) + (assert= "bar" (dom-get-attr _el-select "foo")) )) (deftest "can toggle for a fixed amount of time" (hs-cleanup!) @@ -472,7 +472,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "d1") "foo" nil) + (dom-dispatch _el-d1 "foo" nil) (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can toggle between two classes" @@ -567,8 +567,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-d2 "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP computed style: div2.display )) (deftest "can toggle display on other elt" @@ -579,8 +579,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-d2 "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP computed style: div2.opacity )) (deftest "can toggle display on other elt" @@ -591,8 +591,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-d2 "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP computed style: div2.visibility )) (deftest "can toggle crazy tailwinds class ref on a single form" @@ -716,50 +716,50 @@ (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set indirect properties" (hs-cleanup!) (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set complex indirect properties lhs" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "can set complex indirect properties rhs" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "can set chained indirect properties" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "can set styles" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can set javascript globals" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip window["temp"].should.equal("red") )) (deftest "can set local variables" @@ -769,16 +769,16 @@ (dom-set-attr _el-d1 "_" "on click set newVar to \"foo\" then put newVar into #d1.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set into id ref" (hs-cleanup!) (let ((_el-d1 (dom-create-element "div"))) (dom-set-attr _el-d1 "id" "d1") ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set into class ref" (hs-cleanup!) @@ -787,17 +787,17 @@ ;; HS source has bare quotes — HTML parse artifact (dom-add-class _el-div1 "divs") (dom-append (dom-body) _el-div1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) - (assert= "foo" (dom-inner-html (dom-query-by-id "d2"))) + (dom-dispatch _el-div1 "click" nil) + (assert= "foo" (dom-inner-html _el-div1)) + (assert= "foo" (dom-inner-html _el-div1)) )) (deftest "can set into attribute ref" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-add-class _el-div "divs") ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d1") "bar")) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-get-attr _el-div "bar")) )) (deftest "can set into indirect attribute ref" (hs-cleanup!) @@ -808,8 +808,8 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d2") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert= "foo" (dom-get-attr _el-div2 "bar")) )) (deftest "can set into indirect attribute ref 2" (hs-cleanup!) @@ -820,8 +820,8 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d2") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert= "foo" (dom-get-attr _el-div2 "bar")) )) (deftest "can set into indirect attribute ref 3" (hs-cleanup!) @@ -832,15 +832,15 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d2") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert= "foo" (dom-get-attr _el-div2 "bar")) )) (deftest "can set into style ref" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) (dom-add-class _el-div "divs") ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip d1.style["color"].should.equal("red") )) (deftest "can set into indirect style ref" @@ -852,7 +852,7 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip d2.style["color"].should.equal("red") )) (deftest "can set into indirect style ref 2" @@ -864,7 +864,7 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip d2.style["color"].should.equal("red") )) (deftest "can set into indirect style ref 3" @@ -876,7 +876,7 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip d2.style["color"].should.equal("red") )) (deftest "set waits on promises" @@ -886,8 +886,8 @@ (dom-set-attr _el-d1 "_" "on click set #d1.innerHTML to promiseAString()") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set many properties at once with object literal" (hs-cleanup!) @@ -901,15 +901,15 @@ (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can set props w/ array access syntax and var" (hs-cleanup!) (let ((_el-div (dom-create-element "div"))) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can set arrays w/ array access syntax" (hs-cleanup!) @@ -917,8 +917,8 @@ (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-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can set arrays w/ array access syntax and var" (hs-cleanup!) @@ -926,8 +926,8 @@ (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-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "handles set url regression properly" (hs-cleanup!) @@ -935,7 +935,7 @@ (dom-set-attr _el-div "_" "on click set trackingcode to `foo` set pdfurl to `https://yyy.xxxxxx.com/path/out/${trackingcode}.pdf` put pdfurl into me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip d1.innerText.should.equal("https://yyy.xxxxxx.com/path/out/f )) ) @@ -949,8 +949,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" into #d1.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can put directly into nodes" (hs-cleanup!) @@ -959,8 +959,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" into #d1") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-text-content (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-text-content _el-d1)) )) (deftest "can put nodes into nodes" (hs-cleanup!) @@ -971,7 +971,7 @@ (dom-set-attr _el-d2 "_" "on click put #d1 into #d2") (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip d2.firstChild.should.equal(d1) )) (deftest "can put directly into symbols" @@ -980,8 +980,8 @@ (dom-set-attr _el-div "_" "on click put \"foo\" into me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "me symbol doesn't get stomped on direct write" (hs-cleanup!) @@ -989,8 +989,8 @@ (dom-set-attr _el-div "_" "on click put \"foo\" into me then put \"bar\" into me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "bar" (dom-inner-html _el-div)) )) (deftest "can set styles" (hs-cleanup!) @@ -998,8 +998,8 @@ (dom-set-attr _el-div "_" "on click put \"red\" into my.style.color") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can set javascript globals" (hs-cleanup!) @@ -1007,7 +1007,7 @@ (dom-set-attr _el-div "_" "on click put \"red\" into window.temp") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip window["temp"].should.equal("red") )) (deftest "can set into class ref w/ flatmapped property" @@ -1020,9 +1020,9 @@ (dom-append (dom-body) _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch _el-div "click" nil) - (assert= "foo" (dom-text-content (dom-query-by-id "d1"))) - (assert= "foo" (dom-text-content (dom-query-by-id "d2"))) + (dom-dispatch _el-d2 "click" nil) + (assert= "foo" (dom-text-content _el-d1)) + (assert= "foo" (dom-text-content _el-d2)) )) (deftest "can set into class ref w/ flatmapped property using of" (hs-cleanup!) @@ -1034,9 +1034,9 @@ (dom-append (dom-body) _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch _el-div "click" nil) - (assert= "foo" (dom-text-content (dom-query-by-id "d1"))) - (assert= "foo" (dom-text-content (dom-query-by-id "d2"))) + (dom-dispatch _el-d2 "click" nil) + (assert= "foo" (dom-text-content _el-d1)) + (assert= "foo" (dom-text-content _el-d2)) )) (deftest "can set local variables" (hs-cleanup!) @@ -1045,8 +1045,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" into newVar then put newVar into #d1.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can set into id ref" (hs-cleanup!) @@ -1055,8 +1055,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" into #d1.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can insert before" (hs-cleanup!) @@ -1067,7 +1067,7 @@ (hs-activate! _el-d2) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "d2") "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip d2.previousSibling.textContent.should.equal("foo") )) (deftest "can insert after" @@ -1079,7 +1079,7 @@ (dom-set-attr _el-d2 "_" "on click put #d1 after #d2") (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip d2.nextSibling.textContent.should.equal("foo") )) (deftest "can insert after beginning" @@ -1089,8 +1089,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" at start of #d1") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo*" (dom-text-content (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo*" (dom-text-content _el-d1)) )) (deftest "can insert before end" (hs-cleanup!) @@ -1099,8 +1099,8 @@ (dom-set-attr _el-d1 "_" "on click put \"foo\" at end of #d1") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "*foo" (dom-text-content (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "*foo" (dom-text-content _el-d1)) )) (deftest "can set into attribute ref" (hs-cleanup!) @@ -1109,8 +1109,8 @@ (dom-set-attr _el-div "_" "on click put \"foo\" into @bar") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d1") "bar")) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-get-attr _el-div "bar")) )) (deftest "can set into indirect attribute ref" (hs-cleanup!) @@ -1119,8 +1119,8 @@ (dom-set-attr _el-div "_" "on click put \"foo\" into my @bar") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d1") "bar")) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-get-attr _el-div "bar")) )) (deftest "can set into indirect attribute ref 2" (hs-cleanup!) @@ -1131,8 +1131,8 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d2") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert= "foo" (dom-get-attr _el-div2 "bar")) )) (deftest "can set into indirect attribute ref 3" (hs-cleanup!) @@ -1143,8 +1143,8 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-get-attr (dom-query-by-id "d2") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert= "foo" (dom-get-attr _el-div2 "bar")) )) (deftest "can set into style ref" (hs-cleanup!) @@ -1153,7 +1153,7 @@ (dom-set-attr _el-div "_" "on click put \"red\" into *color") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip d1.style["color"].should.equal("red") )) (deftest "can set into indirect style ref" @@ -1163,7 +1163,7 @@ (dom-set-attr _el-div "_" "on click put \"red\" into my *color") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip d1.style["color"].should.equal("red") )) (deftest "can set into indirect style ref 2" @@ -1175,7 +1175,7 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip d2.style["color"].should.equal("red") )) (deftest "can set into indirect style ref 3" @@ -1187,7 +1187,7 @@ (hs-activate! _el-div) (dom-set-attr _el-div2 "id" "div2") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip d2.style["color"].should.equal("red") )) (deftest "waits on promises" @@ -1197,8 +1197,8 @@ (dom-set-attr _el-d1 "_" "on click put promiseAString() into #d1.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "foo" (dom-inner-html _el-d1)) )) (deftest "can put properties w/ array access syntax" (hs-cleanup!) @@ -1206,8 +1206,8 @@ (dom-set-attr _el-div "_" "on click put \"red\" into my style[\"color\"]") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can put properties w/ array access syntax and var" (hs-cleanup!) @@ -1215,8 +1215,8 @@ (dom-set-attr _el-div "_" "on click set foo to \"color\" then put \"red\" into my style[foo]") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can put array vals w/ array access syntax" (hs-cleanup!) @@ -1224,8 +1224,8 @@ (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-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "can put array vals w/ array access syntax and var" (hs-cleanup!) @@ -1233,8 +1233,8 @@ (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-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "red" (dom-get-style (dom-query-by-id "d1") "color")) + (dom-dispatch _el-div "click" nil) + (assert= "red" (dom-get-style _el-div "color")) )) (deftest "properly processes hyperscript in new content in a symbol write" (hs-cleanup!) @@ -1243,8 +1243,8 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-div "click" nil) + (assert= "42" (dom-inner-html _el-div)) )) (deftest "properly processes hyperscript in new content in a element target" (hs-cleanup!) @@ -1253,9 +1253,9 @@ (dom-set-attr _el-d1 "_" "on click put \"\" into ") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d1 "click" nil) + (assert= "42" (dom-inner-html _el-d1)) )) (deftest "properly processes hyperscript in before" (hs-cleanup!) @@ -1264,9 +1264,9 @@ (dom-set-attr _el-d1 "_" "on click put \"\" before me") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d1 "click" nil) + (assert= "42" (dom-inner-html _el-d1)) )) (deftest "properly processes hyperscript at start of" (hs-cleanup!) @@ -1275,9 +1275,9 @@ (dom-set-attr _el-d1 "_" "on click put \"\" at the start of me") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d1 "click" nil) + (assert= "42" (dom-inner-html _el-d1)) )) (deftest "properly processes hyperscript at end of" (hs-cleanup!) @@ -1286,9 +1286,9 @@ (dom-set-attr _el-d1 "_" "on click put \"\" at the end of me") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d1 "click" nil) + (assert= "42" (dom-inner-html _el-d1)) )) (deftest "properly processes hyperscript after" (hs-cleanup!) @@ -1297,9 +1297,9 @@ (dom-set-attr _el-d1 "_" "on click put \"\" after me") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-button "click" nil) - (assert= "42" (dom-inner-html _el-button)) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d1 "click" nil) + (assert= "42" (dom-inner-html _el-d1)) )) (deftest "is null tolerant" (hs-cleanup!) @@ -1308,7 +1308,7 @@ (dom-set-attr _el-div "_" "on click put \"red\" into #a-bad-id-that-does-not-exist") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) )) (deftest "put null into attribute removes it" (hs-cleanup!) @@ -1446,7 +1446,7 @@ (dom-set-attr _el-div1 "_" "on click hide .hideme") (dom-append (dom-body) _el-div1) (hs-activate! _el-div1) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-div1 "click" nil) ;; SKIP computed style: hideme.display )) (deftest "can hide with custom strategy" @@ -1489,8 +1489,8 @@ (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic true branch works with multiple commands" (hs-cleanup!) @@ -1498,8 +1498,8 @@ (dom-set-attr _el-div "_" "on click if true log me then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic true branch works with end" (hs-cleanup!) @@ -1507,8 +1507,8 @@ (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic true branch works with naked else" (hs-cleanup!) @@ -1516,8 +1516,8 @@ (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic true branch works with naked else end" (hs-cleanup!) @@ -1525,8 +1525,8 @@ (dom-set-attr _el-div "_" "on click if true put \"foo\" into me.innerHTML else end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic else branch works" (hs-cleanup!) @@ -1534,8 +1534,8 @@ (dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic else branch works with end" (hs-cleanup!) @@ -1543,8 +1543,8 @@ (dom-set-attr _el-div "_" "on click if false else put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic else if branch works" (hs-cleanup!) @@ -1552,8 +1552,8 @@ (dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic else if branch works with end" (hs-cleanup!) @@ -1561,8 +1561,8 @@ (dom-set-attr _el-div "_" "on click if false else if true put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "otherwise alias works" (hs-cleanup!) @@ -1570,8 +1570,8 @@ (dom-set-attr _el-div "_" "on click if false otherwise put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "triple else if branch works" (hs-cleanup!) @@ -1579,8 +1579,8 @@ (dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "triple else if branch works with end" (hs-cleanup!) @@ -1588,8 +1588,8 @@ (dom-set-attr _el-div "_" "on click if false else if false else put \"foo\" into me.innerHTML end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "basic else branch works with multiple commands" (hs-cleanup!) @@ -1597,8 +1597,8 @@ (dom-set-attr _el-div "_" "on click if false put \"bar\" into me.innerHTML else log me then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "true branch with a wait works" (hs-cleanup!) @@ -1606,8 +1606,8 @@ (dom-set-attr _el-div "_" "on click if true wait 10 ms then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "false branch with a wait works" (hs-cleanup!) @@ -1615,8 +1615,8 @@ (dom-set-attr _el-div "_" "on click if false else wait 10 ms then put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "if properly passes execution along if child is not executed" (hs-cleanup!) @@ -1624,8 +1624,8 @@ (dom-set-attr _el-div "_" "on click if false end put \"foo\" into me.innerHTML") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "if properly supports nested if statements and end block" (hs-cleanup!) @@ -1633,9 +1633,9 @@ (dom-set-attr _el-div "_" "on click n if window.tmp thenn put \"foo\" into men else if not window.tmp thenn // do nothingn endn catch en // just here for the parsing...n") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-div "click" nil) + (assert= "foo" (dom-inner-html _el-div)) )) (deftest "if on new line does not join w/ else" (hs-cleanup!) @@ -1643,9 +1643,9 @@ (dom-set-attr _el-div "_" "on click n if window.tmp thenn elsen if window.tmp then endn put \"foo\" into men endn") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-div "click" nil) + (assert= "" (dom-inner-html _el-div)) )) (deftest "passes the sieve test" (error "NOT IMPLEMENTED: test HTML could not be parsed into SX")) @@ -1659,8 +1659,8 @@ (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3] put x at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "123" (dom-inner-html _el-div)) )) (deftest "basic for loop with null works" (hs-cleanup!) @@ -1668,8 +1668,8 @@ (dom-set-attr _el-div "_" "on click repeat for x in null put x at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "" (dom-inner-html _el-div)) )) (deftest "waiting in for loop works" (hs-cleanup!) @@ -1677,8 +1677,8 @@ (dom-set-attr _el-div "_" "on click repeat for x in [1, 2, 3]n log me put x at end of men wait 1msn end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "123" (dom-inner-html _el-div)) )) (deftest "basic raw for loop works" (hs-cleanup!) @@ -1686,8 +1686,8 @@ (dom-set-attr _el-div "_" "on click for x in [1, 2, 3] put x at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "123" (dom-inner-html _el-div)) )) (deftest "basic raw for loop works" (hs-cleanup!) @@ -1695,8 +1695,8 @@ (dom-set-attr _el-div "_" "on click for x in null put x at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "" (dom-inner-html _el-div)) )) (deftest "waiting in raw for loop works" (hs-cleanup!) @@ -1704,8 +1704,8 @@ (dom-set-attr _el-div "_" "on click for x in [1, 2, 3]n put x at end of men wait 1msn end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "123" (dom-inner-html _el-div)) )) (deftest "repeat forever works" (hs-cleanup!) @@ -1716,8 +1716,8 @@ (dom-set-attr _el-d1 "_" "on click put repeatForeverWithReturn() into my.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "5" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "5" (dom-inner-html _el-d1)) )) (deftest "repeat forever works w/o keyword" (hs-cleanup!) @@ -1728,8 +1728,8 @@ (dom-set-attr _el-d1 "_" "on click put repeatForeverWithReturn() into my.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "5" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "5" (dom-inner-html _el-d1)) )) (deftest "basic in loop works" (hs-cleanup!) @@ -1737,8 +1737,8 @@ (dom-set-attr _el-div "_" "on click repeat in [1, 2, 3] put it at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "123" (dom-inner-html _el-div)) )) (deftest "index syntax works" (hs-cleanup!) @@ -1746,8 +1746,8 @@ (dom-set-attr _el-div "_" "on click repeat for x in [\"a\", \"ab\", \"abc\"] index i put x + i at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "a0ab1abc2" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "a0ab1abc2" (dom-inner-html _el-div)) )) (deftest "indexed by syntax works" (hs-cleanup!) @@ -1755,8 +1755,8 @@ (dom-set-attr _el-div "_" "on click repeat for x in [\"a\", \"ab\", \"abc\"] indexed by i put x + i at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "a0ab1abc2" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "a0ab1abc2" (dom-inner-html _el-div)) )) (deftest "while keyword works" (hs-cleanup!) @@ -1767,8 +1767,8 @@ (dom-set-attr _el-d1 "_" "on click put repeatWhileTest() into my.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "5" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "5" (dom-inner-html _el-d1)) )) (deftest "until keyword works" (hs-cleanup!) @@ -1779,8 +1779,8 @@ (dom-set-attr _el-d1 "_" "on click put repeatUntilTest() into my.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "5" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "5" (dom-inner-html _el-d1)) )) (deftest "until event keyword works" (hs-cleanup!) @@ -1789,7 +1789,7 @@ (dom-append (dom-body) _el-untilTest) (dom-set-attr _el-script "type" "text/hyperscript") (dom-append (dom-body) _el-script) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-untilTest "click" nil) ;; SKIP check: skip value.should.equal(42) )) (deftest "only executes the init expression once" @@ -1801,8 +1801,8 @@ (dom-set-attr _el-d1 "_" "on click for x in getArray() put x into my.innerHTML end") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "3" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "3" (dom-inner-html _el-d1)) ;; SKIP check: skip window.called.should.equal(1) )) (deftest "can nest loops" @@ -1814,8 +1814,8 @@ (dom-set-attr _el-d1 "_" "on click call sprayInto(me)") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "123246369" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "123246369" (dom-inner-html _el-d1)) )) (deftest "basic times loop works" (hs-cleanup!) @@ -1823,8 +1823,8 @@ (dom-set-attr _el-div "_" "on click repeat 3 times put \"a\" at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "aaa" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "aaa" (dom-inner-html _el-div)) )) (deftest "times loop with expression works" (hs-cleanup!) @@ -1832,8 +1832,8 @@ (dom-set-attr _el-div "_" "on click repeat 3 + 3 times put \"a\" at end of me end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "aaaaaa" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "aaaaaa" (dom-inner-html _el-div)) )) (deftest "loop continue works" (hs-cleanup!) @@ -1841,8 +1841,8 @@ (dom-set-attr _el-div "_" "on click repeat 2 times for x in ['A', 'B', 'C', 'D'] if (x != 'D') then put 'success ' + x + '. ' at end of me continue put 'FAIL!!. ' at end of me end put 'expected D. ' at end of me end end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "success A. success B. success C. expected D. success A. success B. success C. expected D. " (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "success A. success B. success C. expected D. success A. success B. success C. expected D. " (dom-inner-html _el-div)) )) (deftest "loop break works" (hs-cleanup!) @@ -1850,8 +1850,8 @@ (dom-set-attr _el-div "_" "on click repeat 2 times for x in ['A', 'B', 'C', 'D'] if x is 'C' break end put x at end of me end end") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (assert= "ABAB" (dom-inner-html (dom-query-by-id "d1"))) + (dom-dispatch _el-div "click" nil) + (assert= "ABAB" (dom-inner-html _el-div)) )) (deftest "basic raw for loop with null works" (hs-cleanup!) @@ -1997,7 +1997,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "div2") "foo" nil) + (dom-dispatch _el-div "foo" nil) (assert (dom-has-class? _el-div "foo")) (assert (dom-has-class? _el-div "bar")) )) @@ -2010,7 +2010,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "div2") "foo" nil) + (dom-dispatch _el-div "foo" nil) (assert (dom-has-class? _el-div "foo")) (assert (dom-has-class? _el-div "bar")) )) @@ -2023,7 +2023,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "div2") "foo" nil) + (dom-dispatch _el-div "foo" nil) (assert (dom-has-class? _el-div "foo")) (assert (dom-has-class? _el-div "bar")) )) @@ -2041,8 +2041,8 @@ (dom-set-attr _el-bar "_" "on foo add .foo-sent") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "bar") "foo-sent")) + (dom-dispatch _el-bar "click" nil) + (assert (dom-has-class? _el-bar "foo-sent")) )) (deftest "can reference sender in events" (hs-cleanup!) @@ -2054,8 +2054,8 @@ (dom-set-attr _el-bar "_" "on foo add .foo-sent to sender log 1, me, sender") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? _el-div "foo-sent")) + (dom-dispatch _el-bar "click" nil) + (assert (dom-has-class? _el-bar "foo-sent")) )) (deftest "can send events with args" (hs-cleanup!) @@ -2067,9 +2067,9 @@ (dom-set-attr _el-bar "_" "on foo put event.detail.x into my.innerHTML") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "bar") "foo-sent"))) - (assert= "42" (dom-inner-html (dom-query-by-id "bar"))) + (dom-dispatch _el-bar "click" nil) + (assert (not (dom-has-class? _el-bar "foo-sent"))) + (assert= "42" (dom-inner-html _el-bar)) )) (deftest "can send events with dots" (hs-cleanup!) @@ -2081,8 +2081,8 @@ (dom-set-attr _el-bar "_" "on foo.bar add .foo-sent") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "bar") "foo-sent")) + (dom-dispatch _el-bar "click" nil) + (assert (dom-has-class? _el-bar "foo-sent")) )) (deftest "can send events with dots with args" (hs-cleanup!) @@ -2094,9 +2094,9 @@ (dom-set-attr _el-bar "_" "on foo.bar put event.detail.x into my.innerHTML") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "bar") "foo-sent"))) - (assert= "42" (dom-inner-html (dom-query-by-id "bar"))) + (dom-dispatch _el-bar "click" nil) + (assert (not (dom-has-class? _el-bar "foo-sent"))) + (assert= "42" (dom-inner-html _el-bar)) )) (deftest "can send events with colons" (hs-cleanup!) @@ -2108,8 +2108,8 @@ (dom-set-attr _el-bar "_" "on foo:bar add .foo-sent") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "bar") "foo-sent")) + (dom-dispatch _el-bar "click" nil) + (assert (dom-has-class? _el-bar "foo-sent")) )) (deftest "can send events with colons with args" (hs-cleanup!) @@ -2121,9 +2121,9 @@ (dom-set-attr _el-bar "_" "on foo:bar put event.detail.x into my.innerHTML") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "bar") "foo-sent"))) - (assert= "42" (dom-inner-html (dom-query-by-id "bar"))) + (dom-dispatch _el-bar "click" nil) + (assert (not (dom-has-class? _el-bar "foo-sent"))) + (assert= "42" (dom-inner-html _el-bar)) )) (deftest "can send events to any expression" (hs-cleanup!) @@ -2135,8 +2135,8 @@ (dom-set-attr _el-bar "_" "on foo add .foo-sent") (dom-append (dom-body) _el-bar) (hs-activate! _el-bar) - (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? (dom-query-by-id "bar") "foo-sent")) + (dom-dispatch _el-bar "click" nil) + (assert (dom-has-class? _el-bar "foo-sent")) )) ) @@ -2154,10 +2154,10 @@ (hs-activate! _el-div1) (dom-add-class _el-div2 "div") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "d1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "d2") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "d3") "foo"))) + (dom-dispatch _el-div2 "click" nil) + (assert (not (dom-has-class? _el-div2 "foo"))) + (assert (dom-has-class? _el-div2 "foo")) + (assert (not (dom-has-class? _el-div2 "foo"))) )) (deftest "can take a class from other forms" (hs-cleanup!) @@ -2171,10 +2171,10 @@ (hs-activate! _el-form1) (dom-add-class _el-form2 "div") (dom-append (dom-body) _el-form2) - (dom-dispatch (dom-query-by-id "f2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "f1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "f2") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "f3") "foo"))) + (dom-dispatch _el-form2 "click" nil) + (assert (not (dom-has-class? _el-form2 "foo"))) + (assert (dom-has-class? _el-form2 "foo")) + (assert (not (dom-has-class? _el-form2 "foo"))) )) (deftest "can take a class for other elements" (hs-cleanup!) @@ -2189,10 +2189,10 @@ (dom-set-attr _el-d3 "id" "d3") (dom-add-class _el-d3 "div") (dom-append (dom-body) _el-d3) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "d1") "foo"))) - (assert (not (dom-has-class? (dom-query-by-id "d2") "foo"))) - (assert (dom-has-class? (dom-query-by-id "d3") "foo")) + (dom-dispatch _el-d3 "click" nil) + (assert (not (dom-has-class? _el-d3 "foo"))) + (assert (not (dom-has-class? _el-d3 "foo"))) + (assert (dom-has-class? _el-d3 "foo")) )) (deftest "a parent can take a class for other elements" (hs-cleanup!) @@ -2200,10 +2200,10 @@ (dom-set-attr _el-div "_" "on click take .foo from .div for event.target") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "d1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "d2") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "d3") "foo"))) + (dom-dispatch _el-div "click" nil) + (assert (not (dom-has-class? _el-div "foo"))) + (assert (dom-has-class? _el-div "foo")) + (assert (not (dom-has-class? _el-div "foo"))) )) (deftest "can take an attribute from other elements" (hs-cleanup!) @@ -2217,9 +2217,9 @@ (hs-activate! _el-div1) (dom-add-class _el-div2 "div") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "bar" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "" (dom-get-attr (dom-query-by-id "d2") "data-foo")) + (dom-dispatch _el-div2 "click" nil) + (assert= "bar" (dom-get-attr _el-div2 "data-foo")) + (assert= "" (dom-get-attr _el-div2 "data-foo")) ;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo") @@ -2236,9 +2236,9 @@ (hs-activate! _el-div1) (dom-add-class _el-div2 "div") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "bar" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "baz" (dom-get-attr (dom-query-by-id "d2") "data-foo")) + (dom-dispatch _el-div2 "click" nil) + (assert= "bar" (dom-get-attr _el-div2 "data-foo")) + (assert= "baz" (dom-get-attr _el-div2 "data-foo")) ;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo") @@ -2255,10 +2255,10 @@ (hs-activate! _el-div1) (dom-add-class _el-div2 "div") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "qux" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "baz" (dom-get-attr (dom-query-by-id "d2") "data-foo")) - (assert= "qux" (dom-get-attr (dom-query-by-id "d3") "data-foo")) + (dom-dispatch _el-div2 "click" nil) + (assert= "qux" (dom-get-attr _el-div2 "data-foo")) + (assert= "baz" (dom-get-attr _el-div2 "data-foo")) + (assert= "qux" (dom-get-attr _el-div2 "data-foo")) ;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") )) @@ -2275,10 +2275,10 @@ (hs-activate! _el-div1) (dom-add-class _el-div2 "div") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "qux" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "baz" (dom-get-attr (dom-query-by-id "d2") "data-foo")) - (assert= "qux" (dom-get-attr (dom-query-by-id "d3") "data-foo")) + (dom-dispatch _el-div2 "click" nil) + (assert= "qux" (dom-get-attr _el-div2 "data-foo")) + (assert= "baz" (dom-get-attr _el-div2 "data-foo")) + (assert= "qux" (dom-get-attr _el-div2 "data-foo")) ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") )) (deftest "can take an attribute for other elements" @@ -2294,9 +2294,9 @@ (dom-set-attr _el-d3 "id" "d3") (dom-add-class _el-d3 "div") (dom-append (dom-body) _el-d3) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "bar" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "" (dom-get-attr (dom-query-by-id "d3") "data-foo")) + (dom-dispatch _el-d3 "click" nil) + (assert= "bar" (dom-get-attr _el-d3 "data-foo")) + (assert= "" (dom-get-attr _el-d3 "data-foo")) ;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo") @@ -2307,9 +2307,9 @@ (dom-set-attr _el-div "_" "on click take @data-foo from .div for event.target") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert= "bar" (dom-get-attr (dom-query-by-id "d1") "data-foo")) - (assert= "" (dom-get-attr (dom-query-by-id "d2") "data-foo")) + (dom-dispatch _el-div "click" nil) + (assert= "bar" (dom-get-attr _el-div "data-foo")) + (assert= "" (dom-get-attr _el-div "data-foo")) ;; SKIP check: skip assert.isNull(d2.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d3.getAttribute("data-foo") ;; SKIP check: skip assert.isNull(d1.getAttribute("data-foo") @@ -2327,13 +2327,13 @@ (dom-add-class _el-div2 "div") (dom-add-class _el-div2 "bar") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "d1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "d2") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "d3") "foo"))) - (assert (not (dom-has-class? (dom-query-by-id "d1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "d2") "bar")) - (assert (not (dom-has-class? (dom-query-by-id "d3") "bar"))) + (dom-dispatch _el-div2 "click" nil) + (assert (not (dom-has-class? _el-div2 "foo"))) + (assert (dom-has-class? _el-div2 "foo")) + (assert (not (dom-has-class? _el-div2 "foo"))) + (assert (not (dom-has-class? _el-div2 "bar"))) + (assert (dom-has-class? _el-div2 "bar")) + (assert (not (dom-has-class? _el-div2 "bar"))) )) (deftest "can take multiple classes from specific element" (hs-cleanup!) @@ -2349,13 +2349,13 @@ (dom-add-class _el-div2 "div") (dom-add-class _el-div2 "bar") (dom-append (dom-body) _el-div2) - (dom-dispatch (dom-query-by-id "d2") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "d1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "d2") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "d3") "foo"))) - (assert (not (dom-has-class? (dom-query-by-id "d1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "d2") "bar")) - (assert (dom-has-class? (dom-query-by-id "d3") "bar")) + (dom-dispatch _el-div2 "click" nil) + (assert (not (dom-has-class? _el-div2 "foo"))) + (assert (dom-has-class? _el-div2 "foo")) + (assert (not (dom-has-class? _el-div2 "foo"))) + (assert (not (dom-has-class? _el-div2 "bar"))) + (assert (dom-has-class? _el-div2 "bar")) + (assert (dom-has-class? _el-div2 "bar")) )) ) @@ -2414,8 +2414,8 @@ (hs-activate! _el-div) (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition on another element no element prefix" (hs-cleanup!) @@ -2425,8 +2425,8 @@ (hs-activate! _el-div) (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition on another element no element prefix + possessive" (hs-cleanup!) @@ -2436,8 +2436,8 @@ (hs-activate! _el-div) (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition on another element no element prefix with it" (hs-cleanup!) @@ -2447,8 +2447,8 @@ (hs-activate! _el-div) (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition with a custom transition time" (hs-cleanup!) @@ -2456,8 +2456,8 @@ ;; HS source has bare quotes — HTML parse artifact (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition with a custom transition time via the over syntax" (hs-cleanup!) @@ -2467,8 +2467,8 @@ (hs-activate! _el-div) (dom-set-attr _el-foo "id" "foo") (dom-append (dom-body) _el-foo) - (dom-dispatch _el-div "click" nil) - (assert= "100px" (dom-get-style (dom-query-by-id "div2") "width")) + (dom-dispatch _el-foo "click" nil) + (assert= "100px" (dom-get-style _el-foo "width")) )) (deftest "can transition a single property on current element using style ref" (hs-cleanup!) @@ -2582,7 +2582,7 @@ (dom-set-attr _el-div "_" "on click log me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) )) (deftest "can log multiple items" (hs-cleanup!) @@ -2590,7 +2590,7 @@ (dom-set-attr _el-div "_" "on click log me, my") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) )) (deftest "can log multiple items with debug" (hs-cleanup!) @@ -2598,7 +2598,7 @@ (dom-set-attr _el-div "_" "on click log me, my with console.debug") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) )) (deftest "can log multiple items with error" (hs-cleanup!) @@ -2606,7 +2606,7 @@ (dom-set-attr _el-div "_" "on click log me, my with console.error") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-div "click" nil) )) ) @@ -2619,7 +2619,7 @@ (dom-set-attr _el-d1 "_" "on click call document.getElementById(\"d1\") then put it into window.results") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "d1") "click" nil) + (dom-dispatch _el-d1 "click" nil) ;; SKIP check: skip value.should.equal(d1) )) (deftest "can call global javascript functions" @@ -3135,8 +3135,8 @@ (dom-set-attr _el-content "_" "on click append 'Content' to #content") (dom-append (dom-body) _el-content) (hs-activate! _el-content) - (dom-dispatch _el-div "click" nil) - (assert= "Content" (dom-inner-html _el-div)) + (dom-dispatch _el-content "click" nil) + (assert= "Content" (dom-inner-html _el-content)) )) (deftest "can append a value to I" (hs-cleanup!) @@ -3154,7 +3154,7 @@ (dom-set-attr _el-id "_" "on click append '_new' to my id") (dom-append (dom-body) _el-id) (hs-activate! _el-id) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-id "click" nil) ;; SKIP check: skip div.id.should.equal("id_new") )) (deftest "multiple appends work" @@ -3164,8 +3164,8 @@ (dom-set-attr _el-id "_" "on click get 'foo' then append 'bar' then append 'doh' then append it to me") (dom-append (dom-body) _el-id) (hs-activate! _el-id) - (dom-dispatch _el-div "click" nil) - (assert= "foobardoh" (dom-inner-html _el-div)) + (dom-dispatch _el-id "click" nil) + (assert= "foobardoh" (dom-inner-html _el-id)) )) (deftest "append to undefined ignores the undefined" (hs-cleanup!) @@ -3174,8 +3174,8 @@ (dom-set-attr _el-id "_" "on click append 'bar' then append it to me") (dom-append (dom-body) _el-id) (hs-activate! _el-id) - (dom-dispatch _el-div "click" nil) - (assert= "bar" (dom-inner-html _el-div)) + (dom-dispatch _el-id "click" nil) + (assert= "bar" (dom-inner-html _el-id)) )) (deftest "append preserves existing content rather than overwriting it" (hs-cleanup!) @@ -3183,9 +3183,9 @@ (dom-set-attr _el-div "_" "on click append 'New Content' to me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "btn") "click" nil) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) + (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip clicks.should.equal(1) ;; SKIP check: skip div.innerHTML.should.contain("New Content") ;; SKIP check: skip btn.parentNode.should.equal(div) @@ -3197,7 +3197,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip window.temp.should.equal(1) )) (deftest "new DOM content added by append will be live" @@ -3207,7 +3207,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (assert (dom-has-class? _el-span "topping")) + (assert (dom-has-class? _el-div "topping")) )) (deftest "can append a value to a set" (hs-cleanup!) @@ -3231,11 +3231,11 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "div1") "foo")) - (assert (dom-has-class? (dom-query-by-id "div2") "bar")) - (assert (not (dom-has-class? (dom-query-by-id "div2") "foo"))) + (dom-dispatch _el-d2 "click" nil) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (dom-has-class? _el-d2 "foo")) + (assert (dom-has-class? _el-d2 "bar")) + (assert (not (dom-has-class? _el-d2 "foo"))) )) (deftest "does not overwrite the me symbol" (hs-cleanup!) @@ -3246,11 +3246,11 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (dom-has-class? (dom-query-by-id "div1") "bar")) - (assert (dom-has-class? (dom-query-by-id "div1") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "div2") "bar"))) - (assert (not (dom-has-class? (dom-query-by-id "div2") "foo"))) + (dom-dispatch _el-d2 "click" nil) + (assert (dom-has-class? _el-d2 "bar")) + (assert (dom-has-class? _el-d2 "foo")) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (not (dom-has-class? _el-d2 "foo"))) )) (deftest "works with an array" (hs-cleanup!) @@ -3259,15 +3259,15 @@ (dom-set-attr _el-d1 "_" "on click add .foo tell

in me add .bar") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "div1") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "div2") "bar"))) - (assert (not (dom-has-class? (dom-query-by-id "div2") "foo"))) - (assert (dom-has-class? (dom-query-by-id "p1") "bar")) - (assert (not (dom-has-class? (dom-query-by-id "p1") "foo"))) - (assert (dom-has-class? (dom-query-by-id "p2") "bar")) - (assert (not (dom-has-class? (dom-query-by-id "p2") "foo"))) + (dom-dispatch _el-d1 "click" nil) + (assert (not (dom-has-class? _el-d1 "bar"))) + (assert (dom-has-class? _el-d1 "foo")) + (assert (not (dom-has-class? _el-d1 "bar"))) + (assert (not (dom-has-class? _el-d1 "foo"))) + (assert (dom-has-class? _el-d1 "bar")) + (assert (not (dom-has-class? _el-d1 "foo"))) + (assert (dom-has-class? _el-d1 "bar")) + (assert (not (dom-has-class? _el-d1 "foo"))) )) (deftest "restores a proper implicit me symbol" (hs-cleanup!) @@ -3278,11 +3278,11 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "div1") "foo")) - (assert (dom-has-class? (dom-query-by-id "div2") "bar")) - (assert (not (dom-has-class? (dom-query-by-id "div2") "foo"))) + (dom-dispatch _el-d2 "click" nil) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (dom-has-class? _el-d2 "foo")) + (assert (dom-has-class? _el-d2 "bar")) + (assert (not (dom-has-class? _el-d2 "foo"))) )) (deftest "ignores null" (hs-cleanup!) @@ -3293,11 +3293,11 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "div1") "foo")) - (assert (not (dom-has-class? (dom-query-by-id "div2") "bar"))) - (assert (not (dom-has-class? (dom-query-by-id "div2") "foo"))) + (dom-dispatch _el-d2 "click" nil) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (dom-has-class? _el-d2 "foo")) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (not (dom-has-class? _el-d2 "foo"))) )) (deftest "you symbol represents the thing being told" (hs-cleanup!) @@ -3308,9 +3308,9 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert (not (dom-has-class? (dom-query-by-id "div1") "bar"))) - (assert (dom-has-class? (dom-query-by-id "div2") "bar")) + (dom-dispatch _el-d2 "click" nil) + (assert (not (dom-has-class? _el-d2 "bar"))) + (assert (dom-has-class? _el-d2 "bar")) )) (deftest "your symbol represents the thing being told" (hs-cleanup!) @@ -3321,7 +3321,7 @@ (hs-activate! _el-d1) (dom-set-attr _el-d2 "id" "d2") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip div1.innerText.should.equal("") ;; SKIP check: skip div2.innerText.should.equal("foo") ;; SKIP check: skip div1.innerText.should.equal("foo") @@ -3336,7 +3336,7 @@ (dom-set-attr _el-d2 "id" "d2") (dom-set-attr _el-d2 "foo" "bar") (dom-append (dom-body) _el-d2) - (dom-dispatch (dom-query-by-id "div1") "click" nil) + (dom-dispatch _el-d2 "click" nil) ;; SKIP check: skip div1.innerText.should.equal("") ;; SKIP check: skip div2.innerText.should.equal("") ;; SKIP check: skip div1.innerText.should.equal("bar") @@ -3348,8 +3348,8 @@ (dom-set-attr _el-d1 "_" "on click tell #d2 remove yourself") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert= "" (dom-inner-html (dom-query-by-id "div1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "" (dom-inner-html _el-d1)) )) (deftest "tell terminates with a feature" (hs-cleanup!) @@ -3358,8 +3358,8 @@ (dom-set-attr _el-d1 "_" "on click tell #d2 remove yourself on click tell #d3 remove yourself") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "div1") "click" nil) - (assert= "" (dom-inner-html (dom-query-by-id "div1"))) + (dom-dispatch _el-d1 "click" nil) + (assert= "" (dom-inner-html _el-d1)) )) ) @@ -3375,8 +3375,8 @@ (dom-set-attr _el-d1 "_" "on example.event add .called") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can respond to events with colons in names" (hs-cleanup!) @@ -3388,8 +3388,8 @@ (dom-set-attr _el-d1 "_" "on example:event add .called") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can respond to events with minus in names" (hs-cleanup!) @@ -3401,8 +3401,8 @@ (dom-set-attr _el-d1 "_" "on \"a-b\" add .called") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can respond to events on other elements" (hs-cleanup!) @@ -3412,7 +3412,7 @@ (dom-set-attr _el-div "_" "on click from #bar add .clicked") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "bar") "click" nil) + (dom-dispatch _el-bar "click" nil) (assert (dom-has-class? _el-div "clicked")) )) (deftest "listeners on other elements are removed when the registering element is removed" @@ -3421,9 +3421,9 @@ (dom-set-attr _el-bar "id" "bar") (dom-append (dom-body) _el-bar) ;; HS source has bare quotes — HTML parse artifact - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert= "a" (dom-inner-html (dom-query-by-id "bar"))) + (dom-dispatch _el-bar "click" nil) + (dom-dispatch _el-bar "click" nil) + (assert= "a" (dom-inner-html _el-bar)) )) (deftest "listeners on self are not removed when the element is removed" (hs-cleanup!) @@ -3442,7 +3442,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "body") "click" nil) + (dom-dispatch _el-div "click" nil) (assert (dom-has-class? _el-div "clicked")) )) (deftest "supports "from elsewhere" modifier" @@ -3452,7 +3452,7 @@ (dom-append (dom-body) _el-div) (hs-activate! _el-div) (dom-dispatch _el-div "click" nil) - (dom-dispatch (dom-query-by-id "body") "click" nil) + (dom-dispatch _el-div "click" nil) (assert (dom-has-class? _el-div "clicked")) )) (deftest "can pick detail fields out by name" @@ -3466,8 +3466,8 @@ (dom-set-attr _el-d2 "_" "on custom(foo) call me.classList.add(foo)") (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "fromBar")) + (dom-dispatch _el-d2 "click" nil) + (assert (dom-has-class? _el-d2 "fromBar")) )) (deftest "can pick event properties out by name" (hs-cleanup!) @@ -3480,8 +3480,8 @@ (dom-set-attr _el-d2 "_" "on fromBar(type) call me.classList.add(type)") (dom-append (dom-body) _el-d2) (hs-activate! _el-d2) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "fromBar")) + (dom-dispatch _el-d2 "click" nil) + (assert (dom-has-class? _el-d2 "fromBar")) )) (deftest "can fire an event on load" (hs-cleanup!) @@ -3508,7 +3508,7 @@ (dom-set-attr _el-d1 "_" "on click[false] log event then put \"Clicked\" into my.innerHTML") (dom-append (dom-body) _el-d1) (hs-activate! _el-d1) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-d1 "click" nil) ;; SKIP check: skip byId("d1").innerText.should.equal("") )) (deftest "can refer to event properties directly in filter" @@ -3523,9 +3523,9 @@ (dom-set-attr _el-div2 "_" "on click[buttons==1 and buttons==0] log event then put \"Clicked\" into my.innerHTML") (dom-append (dom-body) _el-div2) (hs-activate! _el-div2) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-div "click" nil) - (dom-dispatch _el-div "click" nil) + (dom-dispatch _el-div2 "click" nil) + (dom-dispatch _el-div2 "click" nil) + (dom-dispatch _el-div2 "click" nil) ;; SKIP check: skip div.innerText.should.equal("Clicked") ;; SKIP check: skip div.innerText.should.equal("") )) @@ -3686,7 +3686,7 @@ (dom-set-attr _el-div "_" "on click in #d1 put it into window.tmp") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "div1") "click" nil) + (dom-dispatch _el-div "click" nil) ;; SKIP check: skip div1.should.equal(window.tmp) )) (deftest "can filter events based on count" @@ -3823,8 +3823,8 @@ (dom-set-attr _el-div "_" "on mutation of attributes from #d1 put \"Mutated\" into me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-set-attr (dom-query-by-id "div1") "foo" "bar") - (assert= "Mutated" (dom-inner-html (dom-query-by-id "div2"))) + (dom-set-attr _el-div "foo" "bar") + (assert= "Mutated" (dom-inner-html _el-div)) )) (deftest "each behavior installation has its own event queue" (hs-cleanup!) @@ -3840,12 +3840,12 @@ (dom-set-attr _el-div3 "_" "install DemoBehavior") (dom-append (dom-body) _el-div3) (hs-activate! _el-div3) - (dom-dispatch _el-div "foo" nil) - (dom-dispatch (dom-query-by-id "div2") "foo" nil) - (dom-dispatch (dom-query-by-id "div3") "foo" nil) - (assert= "behavior" (dom-inner-html _el-div)) - (assert= "behavior" (dom-inner-html (dom-query-by-id "div2"))) - (assert= "behavior" (dom-inner-html (dom-query-by-id "div3"))) + (dom-dispatch _el-div3 "foo" nil) + (dom-dispatch _el-div3 "foo" nil) + (dom-dispatch _el-div3 "foo" nil) + (assert= "behavior" (dom-inner-html _el-div3)) + (assert= "behavior" (dom-inner-html _el-div3)) + (assert= "behavior" (dom-inner-html _el-div3)) )) (deftest "can catch exceptions thrown in js functions" (hs-cleanup!) @@ -3853,8 +3853,8 @@ (dom-set-attr _el-button "_" "on click throwBar() catch e put e into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "can catch exceptions thrown in hyperscript functions" (hs-cleanup!) @@ -3864,8 +3864,8 @@ (dom-set-attr _el-button "_" "on click throwBar() catch e put e into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "can catch top-level exceptions" (hs-cleanup!) @@ -3873,8 +3873,8 @@ (dom-set-attr _el-button "_" "on click throw \"bar\" catch e put e into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "can catch async top-level exceptions" (hs-cleanup!) @@ -3882,8 +3882,8 @@ (dom-set-attr _el-button "_" "on click wait 1ms then throw \"bar\" catch e put e into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "async exceptions don't kill the event queue" (hs-cleanup!) @@ -3891,9 +3891,9 @@ (dom-set-attr _el-button "_" "on click increment :x if :x is 1 wait 1ms then throw \"bar\" otherwise put \"success\" into me end catch e put e into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "success" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (dom-dispatch _el-button "click" nil) + (assert= "success" (dom-inner-html _el-button)) )) (deftest "exceptions in catch block don't kill the event queue" (hs-cleanup!) @@ -3901,9 +3901,9 @@ (dom-set-attr _el-button "_" "on click increment :x if :x is 1 throw \"bar\" otherwise put \"success\" into me end catch e put e into me then throw e") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "success" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (dom-dispatch _el-button "click" nil) + (assert= "success" (dom-inner-html _el-button)) )) (deftest "uncaught exceptions trigger 'exception' event" (hs-cleanup!) @@ -3911,8 +3911,8 @@ (dom-set-attr _el-button "_" "on click put \"foo\" into me then throw \"bar\" on exception(error) put error into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "caught exceptions do not trigger 'exception' event" (hs-cleanup!) @@ -3920,8 +3920,8 @@ (dom-set-attr _el-button "_" "on click put \"foo\" into me then throw \"bar\" catch e log e on exception(error) put error into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "foo" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "foo" (dom-inner-html _el-button)) )) (deftest "rethrown exceptions trigger 'exception' event" (hs-cleanup!) @@ -3929,8 +3929,8 @@ (dom-set-attr _el-button "_" "on click put \"foo\" into me then throw \"bar\" catch e throw e on exception(error) put error into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "basic finally blocks work" (hs-cleanup!) @@ -3938,8 +3938,8 @@ (dom-set-attr _el-button "_" "on click throw \"bar\" finally put \"bar\" into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "finally blocks work when exception thrown in catch" (hs-cleanup!) @@ -3947,8 +3947,8 @@ (dom-set-attr _el-button "_" "on click throw \"bar\" catch e throw e finally put \"bar\" into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "async basic finally blocks work" (hs-cleanup!) @@ -3956,8 +3956,8 @@ (dom-set-attr _el-button "_" "on click wait a tick then throw \"bar\" finally put \"bar\" into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "bar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "bar" (dom-inner-html _el-button)) )) (deftest "async finally blocks work when exception thrown in catch" (hs-cleanup!) @@ -3965,8 +3965,8 @@ (dom-set-attr _el-button "_" "on click wait a tick then throw \"bar\" catch e set :foo to \"foo\" then throw e finally put :foo + \"bar\" into me") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "foobar" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (assert= "foobar" (dom-inner-html _el-button)) )) (deftest "async exceptions in finally block don't kill the event queue" (hs-cleanup!) @@ -3974,9 +3974,9 @@ (dom-set-attr _el-button "_" "on click increment :x finally if :x is 1 wait 1ms then throw \"bar\" otherwise put \"success\" into me end") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "success" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (dom-dispatch _el-button "click" nil) + (assert= "success" (dom-inner-html _el-button)) )) (deftest "exceptions in finally block don't kill the event queue" (hs-cleanup!) @@ -3984,9 +3984,9 @@ (dom-set-attr _el-button "_" "on click increment :x finally if :x is 1 throw \"bar\" otherwise put \"success\" into me end") (dom-append (dom-body) _el-button) (hs-activate! _el-button) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (dom-dispatch (dom-query-by-id "btn") "click" nil) - (assert= "success" (dom-inner-html (dom-query-by-id "btn"))) + (dom-dispatch _el-button "click" nil) + (dom-dispatch _el-button "click" nil) + (assert= "success" (dom-inner-html _el-button)) )) (deftest "can ignore when target doesn't exist" (hs-cleanup!) @@ -3995,8 +3995,8 @@ (dom-set-attr _el-#d1 "_" "on click from #doesntExist throw \"bar\" on click put \"clicked\" into me") (dom-append (dom-body) _el-#d1) (hs-activate! _el-#d1) - (dom-dispatch _el-div "click" nil) - (assert= "clicked" (dom-inner-html _el-div)) + (dom-dispatch _el-#d1 "click" nil) + (assert= "clicked" (dom-inner-html _el-#d1)) )) (deftest "can handle an or after a from clause" (hs-cleanup!) @@ -4008,8 +4008,8 @@ (dom-set-attr _el-div "_" "on click from #d1 or click from #d2 increment @count then put @count into me") (dom-append (dom-body) _el-div) (hs-activate! _el-div) - (dom-dispatch (dom-query-by-id "d1") "click" nil) - (dom-dispatch (dom-query-by-id "d2") "click" nil) + (dom-dispatch _el-d1 "click" nil) + (dom-dispatch _el-d2 "click" nil) (assert= "2" (dom-inner-html _el-div)) )) (deftest "handles custom events with null detail" @@ -4100,8 +4100,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can define a basic one arg function" (hs-cleanup!) @@ -4113,8 +4113,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert= "called" (dom-inner-html _el-div)) + (dom-dispatch _el-d1 "click" nil) + (assert= "called" (dom-inner-html _el-d1)) )) (deftest "functions can be namespaced" (hs-cleanup!) @@ -4126,8 +4126,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "is called synchronously" (hs-cleanup!) @@ -4139,8 +4139,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can call asynchronously" (hs-cleanup!) @@ -4152,8 +4152,8 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) - (assert (dom-has-class? _el-div "called")) + (dom-dispatch _el-d1 "click" nil) + (assert (dom-has-class? _el-d1 "called")) )) (deftest "can return a value synchronously" (hs-cleanup!) @@ -4165,7 +4165,7 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) + (dom-dispatch _el-d1 "click" nil) ;; SKIP check: skip div.innerText.should.equal("") ;; SKIP check: skip div.innerText.should.equal("foo") )) @@ -4185,7 +4185,7 @@ (hs-activate! _el-div) (dom-set-attr _el-d1 "id" "d1") (dom-append (dom-body) _el-d1) - (dom-dispatch (dom-query-by-id "bar") "click" nil) + (dom-dispatch _el-d1 "click" nil) ;; SKIP check: skip div.innerText.should.equal("") ;; SKIP check: skip div.innerText.should.equal("foo") )) @@ -7486,7 +7486,7 @@ (hs-activate! _el-target) ;; SKIP action: find___source__.dispatchEvent__click__ ;; SKIP action: evaluate__...__ - (dom-dispatch (dom-query-by-id "source") "click" nil) + (dom-dispatch _el-source "click" nil) ;; SKIP check: skip toHaveClass(/foo/); toBe(true) )) (deftest "cleanup tracks listeners in elt._hyperscript" diff --git a/tests/playwright/generate-sx-tests.py b/tests/playwright/generate-sx-tests.py index dd1278d9..96118d0d 100644 --- a/tests/playwright/generate-sx-tests.py +++ b/tests/playwright/generate-sx-tests.py @@ -56,57 +56,42 @@ def parse_html(html): Parser().feed(html) return elements -def parse_action(action): +def parse_action(action, ref): """Convert upstream action to SX. Returns list of SX expressions.""" if not action or action == '(see body)': return [] exprs = [] - # Split on ';' for multi-step actions for part in action.split(';'): part = part.strip() if not part: continue - # Pattern: var.click() m = re.match(r'(\w+)\.click\(\)', part) if m: - name = m.group(1) - exprs.append(f'(dom-dispatch {ref(name)} "click" nil)') + exprs.append(f'(dom-dispatch {ref(m.group(1))} "click" nil)') continue - # Pattern: var.dispatchEvent(new CustomEvent("name")) - m = re.match(r'(\w+)\.dispatchEvent\(new CustomEvent\("(\w+)"\)\)', part) + m = re.match(r'(\w+)\.dispatchEvent\(new CustomEvent\("([\w:.-]+)"', part) if m: exprs.append(f'(dom-dispatch {ref(m.group(1))} "{m.group(2)}" nil)') continue - # Pattern: var.dispatchEvent(new CustomEvent("name", {detail: {...}})) - m = re.match(r'(\w+)\.dispatchEvent\(new CustomEvent\("(\w+)"', part) - if m: - exprs.append(f'(dom-dispatch {ref(m.group(1))} "{m.group(2)}" nil)') - continue - - # Pattern: var.setAttribute("name", "value") - m = re.match(r'(\w+)\.setAttribute\("(\w+)",\s*"([^"]*)"\)', part) + m = re.match(r'(\w+)\.setAttribute\("([\w-]+)",\s*"([^"]*)"\)', part) if m: exprs.append(f'(dom-set-attr {ref(m.group(1))} "{m.group(2)}" "{m.group(3)}")') continue - # Pattern: var.focus() m = re.match(r'(\w+)\.focus\(\)', part) if m: exprs.append(f'(dom-focus {ref(m.group(1))})') continue - # Pattern: var.appendChild(document.createElement("TAG")) m = re.match(r'(\w+)\.appendChild\(document\.createElement\("(\w+)"\)', part) if m: exprs.append(f'(dom-append {ref(m.group(1))} (dom-create-element "{m.group(2)}"))') continue - # Skip unrecognized - # Sanitize comment — remove all chars that SX parser treats specially safe = re.sub(r'[\'\"$@`(),;\\#\[\]{}]', '_', part[:40]) exprs.append(f';; SKIP action: {safe}') @@ -203,17 +188,42 @@ def parse_checks(check): return list(seen.values()) -def ref(name): - """Convert a JS variable name to SX element reference. - For IDs we use dom-query-by-id at runtime (safer than variable refs). - For tags we use the let-bound variable.""" - tags = {'div', 'form', 'button', 'input', 'span', 'p', 'a', 'section', 'ul', 'li'} - if name in tags: - return f'_el-{name}' - # ID references — use dom-query-by-id for reliability - return f'(dom-query-by-id "{name}")' +def make_ref_fn(elements, var_names): + """Create a ref function that maps upstream JS variable names to SX let-bound variables. -def check_to_sx(check): + Upstream patterns: + - 'div', 'form' etc. → last element with that tag (the make() return value) + - 'd1', 'bar', 'p1' etc. → element with that ID, or last element if no ID match + """ + # Build mappings + tag_to_var = {} # tag -> last var with that tag + id_to_var = {} # id -> var + last_var = var_names[-1] if var_names else '_el-div' + + for i, el in enumerate(elements): + tag_to_var[el['tag']] = var_names[i] + if el['id']: + id_to_var[el['id']] = var_names[i] + + tags = {'div', 'form', 'button', 'input', 'span', 'p', 'a', 'section', + 'ul', 'li', 'select', 'textarea', 'details', 'dialog', 'template'} + + def ref(name): + if name in tags: + return tag_to_var.get(name, last_var) + if name in id_to_var: + return id_to_var[name] + # make() return variable pattern: d1, d2, div1, btn1, etc. + # These refer to the last element created by make() + if re.match(r'^[a-z]+\d*$', name) and len(elements) > 0: + # If there's an element with this as id, use dom-query-by-id + # Otherwise it's the make() return var — use last element + return last_var + return f'(dom-query-by-id "{name}")' + + return ref + +def check_to_sx(check, ref): """Convert a parsed check tuple to an SX assertion.""" typ, name, key, val = check r = ref(name) @@ -250,8 +260,6 @@ def check_to_sx(check): def generate_test(test, idx): """Generate SX deftest for an upstream test.""" elements = parse_html(test['html']) - actions = parse_action(test['action']) - checks = parse_checks(test['check']) if not elements and not test.get('html', '').strip(): # eval-only test — no HTML at all @@ -277,6 +285,13 @@ def generate_test(test, idx): used_names.add(var) var_names.append(var) + # Create ref function with element context + ref = make_ref_fn(elements, var_names) + + # Parse actions and checks with context-aware ref + actions = parse_action(test['action'], ref) + checks = parse_checks(test['check']) + # Create elements bindings = [] for i, el in enumerate(elements): @@ -305,7 +320,6 @@ def generate_test(test, idx): # Escape for SX double-quoted string hs_escaped = hs_val.replace('\\', '\\\\').replace('"', '\\"') lines.append(f' (dom-set-attr {var} "_" "{hs_escaped}")') - all_hs_sources.add(hs_escaped) for aname, aval in el['attrs'].items(): if '\\' in aval or '\n' in aval or aname.startswith('['): lines.append(f' ;; SKIP attr {aname} (contains special chars)') @@ -322,7 +336,7 @@ def generate_test(test, idx): # Assertions for check in checks: - sx = check_to_sx(check) + sx = check_to_sx(check, ref) lines.append(f' {sx}') lines.append(' ))') # close let + deftest diff --git a/tests/playwright/hs-behavioral.spec.js b/tests/playwright/hs-behavioral.spec.js index 42883385..1008ce1e 100644 --- a/tests/playwright/hs-behavioral.spec.js +++ b/tests/playwright/hs-behavioral.spec.js @@ -256,6 +256,17 @@ test.describe('Hyperscript behavioral tests', () => { for (const [t, n] of Object.entries(errTypes).sort((a,b) => b[1] - a[1])) { console.log(` ${t}: ${n}`); } + // Show sample failures per type + for (const [t, n] of Object.entries(errTypes).sort((a,b) => b[1] - a[1])) { + const samples = results.filter(r => !r.p).filter(r => { + const e = r.e || ''; + if (t === 'crash') return e.includes('callFn'); + if (t === 'stub') return e.includes('NOT IMPLEMENTED'); + if (t === 'timeout') return e === 'TIMEOUT'; + return false; + }).slice(0, 3); + for (const s of samples) console.log(` ${s.s}/${s.n}: ${(s.e||'').slice(0, 120)}`); + } expect(results.length).toBeGreaterThanOrEqual(830); expect(passed).toBeGreaterThanOrEqual(420);