diff options
| author | Asko Nõmm <asko@repl.ee> | 2025-12-07 01:22:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-07 01:22:47 +0200 |
| commit | 46c90c3f3d9e5a3e0883e6e6305dbd958951ac47 (patch) | |
| tree | 6b3a5b79f64ecee3fea4e86a3c8e5a09de14c320 /test/dompa/nodes_test.cljc | |
| parent | d78abee5f9c6df199524487f226a1c5498a88ec4 (diff) | |
| parent | 4a242170a0dbc3df30ba56608a581ab1a9fcf61c (diff) | |
Merge pull request #12 from askonomm/11-improve-templating-ergonomics
Improve templating ergonomics (#11)
Diffstat (limited to 'test/dompa/nodes_test.cljc')
| -rw-r--r-- | test/dompa/nodes_test.cljc | 91 |
1 files changed, 79 insertions, 12 deletions
diff --git a/test/dompa/nodes_test.cljc b/test/dompa/nodes_test.cljc index ca8d483..53e502a 100644 --- a/test/dompa/nodes_test.cljc +++ b/test/dompa/nodes_test.cljc @@ -1,13 +1,16 @@ (ns dompa.nodes-test - #?(:clj (:require - [clojure.test :refer [deftest is testing]] - [clojure.zip :as zip] - [dompa.html :as html] - [dompa.nodes :as nodes :refer [$ defhtml]])) - #?(:cljs (:require [cljs.test :refer-macros [deftest testing is]] - [clojure.zip :as zip] - [dompa.nodes :as nodes :refer [$] :refer-macros [defhtml]] - [dompa.html :as html]))) + #?(:clj + (:require + [clojure.test :refer [deftest is testing]] + [clojure.zip :as zip] + [dompa.html :as html] + [dompa.nodes :as nodes :refer [$ defhtml]])) + #?(:cljs + (:require + [cljs.test :refer-macros [deftest testing is]] + [clojure.zip :as zip] + [dompa.nodes :as nodes :refer [$] :refer-macros [defhtml]] + [dompa.html :as html]))) (defhtml hello [who] ($ :div @@ -21,7 +24,7 @@ ($ :ul (->> items (map (fn [item] - ($ :li ($ item)))) + ($ :li item))) (into [])))) (deftest list-items-test @@ -33,7 +36,7 @@ (is (= {:node/name :div :node/children [{:node/name :dompa/text :node/value "hello world"}]} - ($ :div ($ "hello world"))))) + ($ :div "hello world")))) (testing "a fragment node" (is (= {:node/name :<> @@ -47,7 +50,71 @@ ($ :span ($ "hello")) ($ :span - ($ "world"))))))) + ($ "world")))))) + + (testing "a nil node" + (is (= nil + ($ nil)))) + + (testing "a string node" + (is (= {:node/name :dompa/text + :node/value "hello world"} + ($ "hello world")))) + + (testing "a node of multiple sub-nodes" + (is (= {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "hello"} + {:node/name :dompa/text + :node/value "12345"} + {:node/name :dompa/text + :node/value "123.3"} + {:node/name :dompa/text + :node/value "world"}]} + ($ "hello" 12345 nil 123.3 "world"))) + + (is (= {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "hello"} + {:node/name :dompa/text + :node/value "12345"} + {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "w"} + {:node/name :dompa/text + :node/value "o"} + {:node/name :dompa/text + :node/value "r"} + {:node/name :dompa/text + :node/value "l"} + {:node/name :dompa/text + :node/value "d"}]}]} + ($ "hello" 12345 (map #($ %) ["w" "o" "r" "l" "d"])))) + + (is (= {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "hello"} + {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "w"} + {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "o"} + {:node/name :dompa/text + :node/value "r"} + {:node/name :<> + :node/children [{:node/name :dompa/text + :node/value "l"} + {:node/name :dompa/text + :node/value "d"}]}]}]}]} + ($ "hello" + (map (fn [x] + ($ x)) + ["w" (map (fn [x] + ($ x)) + ["o" "r" (map (fn [x] + ($ x)) + ["l" "d"])])])))))) (deftest traverse-test (let [traverser-fn (fn [node] |
