Add hsx macro

This commit is contained in:
Akira Tempaku 2024-05-26 19:48:09 +09:00
parent 422b111114
commit 6c6dce401e
5 changed files with 66 additions and 5 deletions

View file

@ -5,7 +5,6 @@
(in-package :hsx-test/element)
(def-suite element-test)
(in-suite element-test)
(test builtin-element

31
tests/hsx-macro.lisp Normal file
View file

@ -0,0 +1,31 @@
(defpackage #:hsx-test/hsx-macro
(:use #:cl
#:fiveam)
(:import-from #:hsx/element
#:element-type
#:element-props)
(:import-from #:hsx/hsx
#:hsx
#:defcomp))
(in-package #:hsx-test/hsx-macro)
(def-suite hsx-macro-test)
(in-suite hsx-macro-test)
(defcomp div (&rest props)
(declare (ignore props))
"This is fake!")
(defcomp p (&rest props)
(declare (ignore props))
"This is fake!")
(test find-symbols
(let ((fake-elm (div :prop "value"
(p "brah"))))
(is (eql (element-type fake-elm) #'%div)
(eql (element-type (first (element-children fake-elm))) #'%p)))
(let ((true-elm (hsx (div :prop "value"
(p "brah")))))
(is (equal (element-type true-elm) "div")
(equal (element-type (first (element-children true-elm))) "p"))))

View file

@ -8,7 +8,6 @@
(def-suite hsx-test)
(in-suite hsx-test)
(test empty-hsx
(is (equal (macroexpand-1
'(div))