You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.9 KiB
92 lines
2.9 KiB
(ns formulare.theme-test
|
|
(:require [clojure.test :refer :all]
|
|
[formulare.core :refer :all]))
|
|
|
|
(deftest row-is-overridable
|
|
(binding [*row-theme* (fn [& content] [1])]
|
|
(is (= [1]
|
|
(nth (render-widgets {:fields {:foo {}}} {} {})
|
|
2)))))
|
|
|
|
(deftest widget-error-is-overridable
|
|
(binding [*widget-error-theme* (fn [& args] \a)]
|
|
(let [def {:fields {:foo {:spec (fn [_] false)}}}
|
|
hash (form-hash def {})]
|
|
(is (= \a
|
|
(-> (render-widgets def {}
|
|
{:params {:__form-hash hash}})
|
|
(nth 2)
|
|
first))))))
|
|
|
|
(deftest form-error-is-overridable
|
|
(binding [*form-error-theme* (fn [& args] \a)]
|
|
(let [def {:fields {:foo {:spec (fn [_] false)}}
|
|
:form-specs [(fn [_] false)]}
|
|
hash (form-hash def {})]
|
|
(is (= \a
|
|
(first (render-widgets def {}
|
|
{:params {:__form-hash hash}})))))))
|
|
|
|
(deftest label-is-overridable
|
|
(binding [*label-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:label "b"}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 1))))))
|
|
|
|
(deftest input-is-overridable
|
|
(binding [*input-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2))))))
|
|
|
|
(deftest checkbox-is-overridable
|
|
(binding [*checkbox-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:widget :checkbox}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2))))))
|
|
|
|
(deftest textarea-is-overridable
|
|
(binding [*textarea-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:widget :textarea}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2))))))
|
|
|
|
(deftest select-is-overridable
|
|
(binding [*select-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:widget :select}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2))))))
|
|
|
|
(deftest mselect-is-overridable
|
|
(binding [*mselect-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:widget :mselect}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2)))))
|
|
(testing "size attribute is used"
|
|
(is (= 20 (-> (render-widgets {:fields {:foo {:widget :mselect :size 20}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2)
|
|
second
|
|
:size)))))
|
|
|
|
(deftest hidden-is-overridable
|
|
(binding [*hidden-widget-theme* (fn [& _] \a)]
|
|
(is (= \a
|
|
(-> (render-widgets {:fields {:foo {:widget :hidden}}}
|
|
{} {})
|
|
(nth 2)
|
|
(nth 2))))))
|