HS parser/compiler/mock: fix 31 test failures across 7 issues
Parser: - Relax (number? v) to v in parse-one-transition so (expr)unit works - Add (match-kw "then") before parse-cmd-list in parse-for-cmd - Handle "indexed by" syntax alongside "index" in for loops - Add "indexed" to hs-keywords to prevent unit-suffix consumption Compiler: - Use map-indexed instead of for-each for indexed for-loops Test generator: - Preserve \" escapes in process_hs_val via placeholder/restore Mock DOM: - Coerce insertAdjacentHTML values via dom_stringify (match browser) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -638,10 +638,11 @@
|
||||
(deftest "can toggle between two attribute values"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-div "data-state" "active")
|
||||
;; SKIP attr [@data-state (contains special chars)
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-get-attr _el-div "data-state") "inactive")
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -650,11 +651,12 @@
|
||||
(deftest "can toggle between different attributes"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-div "enabled" "true")
|
||||
;; SKIP attr [@enabled (contains special chars)
|
||||
;; SKIP attr [@disabled (contains special chars)
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-get-attr _el-div "disabled") "true")
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -722,9 +724,10 @@
|
||||
(deftest "can toggle *display between two values"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-div "style" "display:none")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-get-style _el-div "display") "flex")
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -733,9 +736,10 @@
|
||||
(deftest "can toggle *opacity between three values"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-div "style" "opacity:0")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-get-style _el-div "opacity") "0.5")
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -746,8 +750,9 @@
|
||||
(deftest "can toggle a global variable between two values"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -755,8 +760,9 @@
|
||||
(deftest "can toggle a global variable between three values"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -1351,7 +1357,7 @@
|
||||
(deftest "properly processes hyperscript in new content in a symbol write"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" into me")
|
||||
(dom-set-attr _el-div "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" into me")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -1362,7 +1368,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" into <div#d1/>")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" into <div#d1/>")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch _el-d1 "click" nil)
|
||||
@@ -1373,7 +1379,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" before me")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" before me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch _el-d1 "click" nil)
|
||||
@@ -1384,7 +1390,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" at the start of me")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" at the start of me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch _el-d1 "click" nil)
|
||||
@@ -1395,7 +1401,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" at the end of me")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" at the end of me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch _el-d1 "click" nil)
|
||||
@@ -1406,7 +1412,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\"b1\" _=\"on click put 42 into me\">40</button>\" after me")
|
||||
(dom-set-attr _el-d1 "_" "on click put \"<button id=\\\"b1\\\" _=\\\"on click put 42 into me\\\">40</button>\" after me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch _el-d1 "click" nil)
|
||||
@@ -2047,7 +2053,7 @@
|
||||
(deftest "for loop over undefined skips without error"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click repeat for x in doesNotExist put x at end of me end put \"done\" into me")
|
||||
(dom-set-attr _el-div "_" "on click repeat for x in doesNotExist put x at end of me end put \\\"done\\\" into me")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -2704,9 +2710,10 @@
|
||||
(deftest "can transition on query ref with of syntax"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")) (_el-span (dom-create-element "span")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(dom-append (dom-body) _el-span)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-get-style _el-span "width") "100px")
|
||||
))
|
||||
@@ -2980,7 +2987,7 @@
|
||||
(deftest "throws on non-2xx response by default"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click fetch /test catch e put \"caught\" into me")
|
||||
(dom-set-attr _el-div "_" "on click fetch /test catch e put \\\"caught\\\" into me")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -3016,8 +3023,9 @@
|
||||
(deftest "Response can be converted to JSON via as JSON"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-text-content _el-div) "Joe")
|
||||
))
|
||||
@@ -4184,7 +4192,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on myEvent(foo) if foo put foo into me else put \"no-detail\" into me")
|
||||
(dom-set-attr _el-d1 "_" "on myEvent(foo) if foo put foo into me else put \\\"no-detail\\\" into me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
))
|
||||
@@ -4203,7 +4211,7 @@
|
||||
(deftest "caught exceptions do not trigger 'exception' event"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")))
|
||||
(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-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 _el-button "click" nil)
|
||||
@@ -4212,7 +4220,7 @@
|
||||
(deftest "rethrown exceptions trigger 'exception' event"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")))
|
||||
(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-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 _el-button "click" nil)
|
||||
@@ -4221,7 +4229,7 @@
|
||||
(deftest "can ignore when target doesn\'t exist"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click from #doesntExist then throw \"bar\" on click put \"clicked\" into me")
|
||||
(dom-set-attr _el-div "_" "on click from #doesntExist then throw \\\"bar\\\" on click put \\\"clicked\\\" into me")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -4423,7 +4431,7 @@
|
||||
(deftest "prompts and puts result in it"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
|
||||
(dom-set-attr _el-button "_" "on click ask \"What is your name?\" then put it into #out")
|
||||
(dom-set-attr _el-button "_" "on click ask \\\"What is your name?\\\" then put it into #out")
|
||||
(dom-set-inner-html _el-button "Ask")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -4435,7 +4443,7 @@
|
||||
(deftest "returns null on cancel"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
|
||||
(dom-set-attr _el-button "_" "on click ask \"Name?\" then put it into #out")
|
||||
(dom-set-attr _el-button "_" "on click ask \\\"Name?\\\" then put it into #out")
|
||||
(dom-set-inner-html _el-button "Ask")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -4447,7 +4455,7 @@
|
||||
(deftest "shows an alert"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
|
||||
(dom-set-attr _el-button "_" "on click answer \"Hello!\" then put \"done\" into #out")
|
||||
(dom-set-attr _el-button "_" "on click answer \\\"Hello!\\\" then put \\\"done\\\" into #out")
|
||||
(dom-set-inner-html _el-button "Go")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -4459,7 +4467,7 @@
|
||||
(deftest "confirm returns first choice on OK"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
|
||||
(dom-set-attr _el-button "_" "on click answer \"Save?\" with \"Yes\" or \"No\" then put it into #out")
|
||||
(dom-set-attr _el-button "_" "on click answer \\\"Save?\\\" with \\\"Yes\\\" or \\\"No\\\" then put it into #out")
|
||||
(dom-set-inner-html _el-button "Go")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -4471,7 +4479,7 @@
|
||||
(deftest "confirm returns second choice on cancel"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-button (dom-create-element "button")) (_el-out (dom-create-element "div")))
|
||||
(dom-set-attr _el-button "_" "on click answer \"Save?\" with \"Yes\" or \"No\" then put it into #out")
|
||||
(dom-set-attr _el-button "_" "on click answer \\\"Save?\\\" with \\\"Yes\\\" or \\\"No\\\" then put it into #out")
|
||||
(dom-set-inner-html _el-button "Go")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -4850,7 +4858,7 @@
|
||||
(deftest "can parse go to with string URL"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click go to \"#test-hash\"")
|
||||
(dom-set-attr _el-div "_" "on click go to \\\"#test-hash\\\"")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
))
|
||||
@@ -4946,11 +4954,12 @@
|
||||
(dom-set-attr _el-outer "id" "outer")
|
||||
(dom-set-attr _el-outer "_" "on click add .outer-clicked")
|
||||
(dom-set-attr _el-inner "id" "inner")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-inner "_" "\\\"on")
|
||||
(dom-set-inner-html _el-inner "click me")
|
||||
(dom-append (dom-body) _el-outer)
|
||||
(dom-append _el-outer _el-inner)
|
||||
(hs-activate! _el-outer)
|
||||
(hs-activate! _el-inner)
|
||||
(dom-dispatch (dom-query-by-id "inner") "click" nil)
|
||||
(assert (not (dom-has-class? (dom-query-by-id "outer") "outer-clicked")))
|
||||
(assert (dom-has-class? (dom-query-by-id "inner") "continued"))
|
||||
@@ -5036,7 +5045,7 @@
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-inner-html _el-span "first")
|
||||
(dom-set-attr _el-target2 "id" "target")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-target2 "_" "\\\"on")
|
||||
(dom-set-inner-html _el-span3 "first")
|
||||
(dom-set-inner-html _el-span4 "second")
|
||||
(dom-append (dom-body) _el-target)
|
||||
@@ -5044,6 +5053,7 @@
|
||||
(dom-append (dom-body) _el-target2)
|
||||
(dom-append _el-target2 _el-span3)
|
||||
(dom-append _el-target2 _el-span4)
|
||||
(hs-activate! _el-target2)
|
||||
(dom-dispatch (dom-query-by-id "go") "click" nil)
|
||||
))
|
||||
(deftest "morph removes old children"
|
||||
@@ -5053,13 +5063,14 @@
|
||||
(dom-set-inner-html _el-span "first")
|
||||
(dom-set-inner-html _el-span2 "second")
|
||||
(dom-set-attr _el-target3 "id" "target")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-target3 "_" "\\\"on")
|
||||
(dom-set-inner-html _el-span4 "first")
|
||||
(dom-append (dom-body) _el-target)
|
||||
(dom-append _el-target _el-span)
|
||||
(dom-append _el-target _el-span2)
|
||||
(dom-append (dom-body) _el-target3)
|
||||
(dom-append _el-target3 _el-span4)
|
||||
(hs-activate! _el-target3)
|
||||
(dom-dispatch (dom-query-by-id "go") "click" nil)
|
||||
))
|
||||
(deftest "morph initializes hyperscript on new elements"
|
||||
@@ -5068,7 +5079,7 @@
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-inner-html _el-p "old")
|
||||
(dom-set-attr _el-target2 "id" "target")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-target2 "_" "\\\"on")
|
||||
(dom-set-attr _el-inner "id" "inner")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-inner-html _el-inner "new")
|
||||
@@ -5076,6 +5087,7 @@
|
||||
(dom-append _el-target _el-p)
|
||||
(dom-append (dom-body) _el-target2)
|
||||
(dom-append _el-target2 _el-inner)
|
||||
(hs-activate! _el-target2)
|
||||
(dom-dispatch (dom-query-by-id "go") "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "inner")) "new")
|
||||
(dom-dispatch (dom-query-by-id "inner") "click" nil)
|
||||
@@ -5086,7 +5098,7 @@
|
||||
(let ((_el-target (dom-create-element "div")) (_el-child (dom-create-element "div")) (_el-button (dom-create-element "button")))
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-attr _el-child "id" "child")
|
||||
(dom-set-attr _el-child "_" "on click put \"alive\" into me")
|
||||
(dom-set-attr _el-child "_" "on click put \\\"alive\\\" into me")
|
||||
(dom-set-inner-html _el-child "child")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-inner-html _el-button "go")
|
||||
@@ -5132,7 +5144,7 @@
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-inner-html _el-target "original")
|
||||
(dom-set-attr _el-go "id" "go")
|
||||
(dom-set-attr _el-go "_" "on click set content to \"<div id=target>morphed</div>\" then morph #target to content")
|
||||
(dom-set-attr _el-go "_" "on click set content to \\\"<div id=target>morphed</div>\\\" then morph #target to content")
|
||||
(dom-set-inner-html _el-go "go")
|
||||
(dom-append (dom-body) _el-target)
|
||||
(dom-append (dom-body) _el-go)
|
||||
@@ -7255,7 +7267,7 @@
|
||||
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-inner-html _el-target "old")
|
||||
(dom-set-attr _el-button "_" "on click make a <span.replaced/> then put \"moved\" into it then set #target to it")
|
||||
(dom-set-attr _el-button "_" "on click make a <span.replaced/> then put \\\"moved\\\" into it then set #target to it")
|
||||
(dom-set-inner-html _el-button "go")
|
||||
(dom-append (dom-body) _el-target)
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -7343,7 +7355,7 @@
|
||||
(let ((_el-target (dom-create-element "div")) (_el-button (dom-create-element "button")))
|
||||
(dom-set-attr _el-target "id" "target")
|
||||
(dom-set-inner-html _el-target "old")
|
||||
(dom-set-attr _el-button "_" "on click put \"new\" into #target")
|
||||
(dom-set-attr _el-button "_" "on click put \\\"new\\\" into #target")
|
||||
(dom-set-inner-html _el-button "go")
|
||||
(dom-append (dom-body) _el-target)
|
||||
(dom-append (dom-body) _el-button)
|
||||
@@ -7464,15 +7476,17 @@
|
||||
(dom-set-inner-html _el-span2 "B")
|
||||
(dom-add-class _el-span3 "a")
|
||||
(dom-set-inner-html _el-span3 "C")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-button "_" "\\\"on")
|
||||
(dom-set-attr _el-b2 "id" "b2")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-b2 "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-box)
|
||||
(dom-append _el-box _el-span)
|
||||
(dom-append _el-box _el-span2)
|
||||
(dom-append _el-box _el-span3)
|
||||
(dom-append (dom-body) _el-button)
|
||||
(dom-append (dom-body) _el-b2)
|
||||
(hs-activate! _el-button)
|
||||
(hs-activate! _el-b2)
|
||||
(dom-dispatch _el-button "click" nil)
|
||||
(assert= (dom-text-content _el-button) "2")
|
||||
(dom-dispatch (dom-query-by-id "b2") "click" nil)
|
||||
@@ -7486,11 +7500,12 @@
|
||||
(dom-set-inner-html _el-span "A")
|
||||
(dom-add-class _el-span2 "b")
|
||||
(dom-set-inner-html _el-span2 "B")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-button "_" "\\\"set")
|
||||
(dom-append (dom-body) _el-box)
|
||||
(dom-append _el-box _el-span)
|
||||
(dom-append _el-box _el-span2)
|
||||
(dom-append (dom-body) _el-button)
|
||||
(hs-activate! _el-button)
|
||||
(dom-dispatch _el-button "click" nil)
|
||||
(assert= (dom-text-content _el-button) "1")
|
||||
))
|
||||
@@ -7911,8 +7926,9 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-d1 "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch (dom-query-by-id "d1") "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "d1")) "bar")
|
||||
))
|
||||
@@ -7920,8 +7936,9 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-d1 "_" "\\\"on")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch (dom-query-by-id "d1") "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "d1")) "bar")
|
||||
))
|
||||
@@ -7996,7 +8013,7 @@
|
||||
(deftest "handles rejected promises without hanging"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click js return Promise.reject(\"boom\") end catch e put e into my.innerHTML")
|
||||
(dom-set-attr _el-div "_" "on click js return Promise.reject(\\\"boom\\\") end catch e put e into my.innerHTML")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -8078,7 +8095,7 @@
|
||||
(deftest "the result in a when clause refers to previous command result, not element being tested"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")) (_el-s1 (dom-create-element "span")) (_el-s2 (dom-create-element "span")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-s1 "id" "s1")
|
||||
(dom-set-attr _el-s1 "style" "display:none")
|
||||
(dom-set-inner-html _el-s1 "A")
|
||||
@@ -8088,6 +8105,7 @@
|
||||
(dom-append (dom-body) _el-div)
|
||||
(dom-append (dom-body) _el-s1)
|
||||
(dom-append (dom-body) _el-s2)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert (dom-visible? (dom-query-by-id "s1")))
|
||||
(assert (dom-visible? (dom-query-by-id "s2")))
|
||||
@@ -8095,7 +8113,7 @@
|
||||
(deftest "the result after show...when is the matched elements"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")) (_el-p (dom-create-element "p")) (_el-p2 (dom-create-element "p")) (_el-out (dom-create-element "span")))
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-div "_" "\\\"on")
|
||||
(dom-set-attr _el-p "style" "display:none")
|
||||
(dom-set-inner-html _el-p "yes")
|
||||
(dom-set-attr _el-p2 "style" "display:none")
|
||||
@@ -8106,6 +8124,7 @@
|
||||
(dom-append (dom-body) _el-p)
|
||||
(dom-append (dom-body) _el-p2)
|
||||
(dom-append (dom-body) _el-out)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "out")) "some")
|
||||
))
|
||||
@@ -8234,7 +8253,7 @@
|
||||
(deftest "can have comments in attributes (triple dash)"
|
||||
(hs-cleanup!)
|
||||
(let ((_el-div (dom-create-element "div")))
|
||||
(dom-set-attr _el-div "_" "on click put \"clicked\" into my.innerHTML ---put some content into the div...")
|
||||
(dom-set-attr _el-div "_" "on click put \\\"clicked\\\" into my.innerHTML ---put some content into the div...")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(hs-activate! _el-div)
|
||||
(dom-dispatch _el-div "click" nil)
|
||||
@@ -8244,7 +8263,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click blargh end on mouseenter put \"hovered\" into my.innerHTML")
|
||||
(dom-set-attr _el-d1 "_" "on click blargh end on mouseenter put \\\"hovered\\\" into my.innerHTML")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
))
|
||||
@@ -8252,7 +8271,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click blargh end on mouseenter also_bad end on focus put \"focused\" into my.innerHTML")
|
||||
(dom-set-attr _el-d1 "_" "on click blargh end on mouseenter also_bad end on focus put \\\"focused\\\" into my.innerHTML")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
))
|
||||
@@ -8264,7 +8283,7 @@
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click blargh end on mouseenter also_bad")
|
||||
(dom-set-attr _el-d2 "id" "d2")
|
||||
(dom-set-attr _el-d2 "_" "on click put \"clicked\" into my.innerHTML")
|
||||
(dom-set-attr _el-d2 "_" "on click put \\\"clicked\\\" into my.innerHTML")
|
||||
(dom-append (dom-body) _el-div)
|
||||
(dom-append _el-div _el-d1)
|
||||
(dom-append _el-div _el-d2)
|
||||
@@ -8351,7 +8370,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-arDiv (dom-create-element "div")))
|
||||
(dom-set-attr _el-arDiv "id" "arDiv")
|
||||
(dom-set-attr _el-arDiv "_" "on click set my @data-foo to \"blue\"")
|
||||
(dom-set-attr _el-arDiv "_" "on click set my @data-foo to \\\"blue\\\"")
|
||||
(dom-set-attr _el-arDiv "data-foo" "red")
|
||||
(dom-append (dom-body) _el-arDiv)
|
||||
(hs-activate! _el-arDiv)
|
||||
@@ -8367,7 +8386,7 @@
|
||||
(dom-set-attr _el-outerDiv2 "id" "outerDiv2")
|
||||
(dom-set-attr _el-outerDiv2 "foo" "bar")
|
||||
(dom-set-attr _el-d1b "id" "d1b")
|
||||
(dom-set-attr _el-d1b "_" "on click set closest @foo to \"doh\"")
|
||||
(dom-set-attr _el-d1b "_" "on click set closest @foo to \\\"doh\\\"")
|
||||
(dom-append (dom-body) _el-outerDiv2)
|
||||
(dom-append _el-outerDiv2 _el-d1b)
|
||||
(hs-activate! _el-d1b)
|
||||
@@ -8381,7 +8400,7 @@
|
||||
(dom-add-class _el-input4 "cb")
|
||||
(dom-set-attr _el-input4 "type" "checkbox")
|
||||
(dom-set-attr _el-master "id" "master")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-master "_" "\\\"set")
|
||||
(dom-set-attr _el-master "type" "checkbox")
|
||||
(dom-set-attr _el-master "<input[type" "checkbox]/")
|
||||
(dom-set-inner-html _el-master "in the closest")
|
||||
@@ -8394,6 +8413,7 @@
|
||||
(dom-append _el-input4 _el-master)
|
||||
(dom-append _el-master _el-table6)
|
||||
(dom-append _el-master _el-out)
|
||||
(hs-activate! _el-master)
|
||||
(dom-dispatch (dom-query-by-id "master") "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "out")) "2")
|
||||
))
|
||||
@@ -8413,7 +8433,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click if I am a Element put \"yes\" into me")
|
||||
(dom-set-attr _el-d1 "_" "on click if I am a Element put \\\"yes\\\" into me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch (dom-query-by-id "d1") "click" nil)
|
||||
@@ -8423,7 +8443,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click if I am a Node put \"yes\" into me")
|
||||
(dom-set-attr _el-d1 "_" "on click if I am a Node put \\\"yes\\\" into me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch (dom-query-by-id "d1") "click" nil)
|
||||
@@ -8433,7 +8453,7 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-d1 (dom-create-element "div")))
|
||||
(dom-set-attr _el-d1 "id" "d1")
|
||||
(dom-set-attr _el-d1 "_" "on click if \"hello\" is not a Element put \"yes\" into me")
|
||||
(dom-set-attr _el-d1 "_" "on click if \\\"hello\\\" is not a Element put \\\"yes\\\" into me")
|
||||
(dom-append (dom-body) _el-d1)
|
||||
(hs-activate! _el-d1)
|
||||
(dom-dispatch (dom-query-by-id "d1") "click" nil)
|
||||
@@ -8573,10 +8593,11 @@
|
||||
(hs-cleanup!)
|
||||
(let ((_el-a (dom-create-element "div")) (_el-b (dom-create-element "div")))
|
||||
(dom-set-attr _el-a "id" "a")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-a "_" "\\\"on")
|
||||
(dom-set-attr _el-b "id" "b")
|
||||
(dom-append (dom-body) _el-a)
|
||||
(dom-append (dom-body) _el-b)
|
||||
(hs-activate! _el-a)
|
||||
(dom-dispatch (dom-query-by-id "a") "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "a")) "yes")
|
||||
))
|
||||
@@ -8725,13 +8746,14 @@
|
||||
(dom-set-inner-html _el-span "A")
|
||||
(dom-add-class _el-span2 "b")
|
||||
(dom-set-inner-html _el-span2 "B")
|
||||
;; HS source has bare quotes or embedded HTML
|
||||
(dom-set-attr _el-button "_" "\\\"on")
|
||||
(dom-set-attr _el-out "id" "out")
|
||||
(dom-append (dom-body) _el-box)
|
||||
(dom-append _el-box _el-span)
|
||||
(dom-append _el-box _el-span2)
|
||||
(dom-append (dom-body) _el-button)
|
||||
(dom-append (dom-body) _el-out)
|
||||
(hs-activate! _el-button)
|
||||
(dom-dispatch _el-button "click" nil)
|
||||
(assert= (dom-text-content (dom-query-by-id "out")) "none")
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user