HS: fix parser then-skip + bootstrap test fixes (+3)

Parser: parse-cmd-list now skips a leading 'then' token so that
'on click from #bar then add .clicked' compiles correctly instead
of producing nil as the body.

Bootstrap tests: fix two broken tests whose assertions were
incomplete or contradictory:
- "cleanup removes event listeners" — deactivate + re-click to
  verify listener is gone
- "reinitializes if script attribute changes" — actually change
  the _ attribute before re-activating and re-clicking

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-26 21:26:16 +00:00
parent 8b972483ae
commit 87072e61c1
3 changed files with 73 additions and 88 deletions

View File

@@ -1396,8 +1396,10 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(assert (dom-has-class? _el-div "foo"))
(assert (not (dom-has-class? _el-div "foo")))
))
(hs-deactivate! _el-div)
(dom-remove-class _el-div "foo")
(dom-dispatch _el-div "click" nil)
(assert (not (dom-has-class? _el-div "foo")))))
(deftest "cleanup tracks listeners in elt._hyperscript"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))
@@ -1478,9 +1480,10 @@
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(assert (dom-has-class? _el-div "foo"))
(dom-set-attr _el-div "_" "on click add .bar")
(hs-activate! _el-div)
(dom-dispatch _el-div "click" nil)
(assert (dom-has-class? _el-div "bar"))
))
(assert (dom-has-class? _el-div "bar"))))
(deftest "sets data-hyperscript-powered on initialized elements"
(hs-cleanup!)
(let ((_el-div (dom-create-element "div")))