diff --git a/src/adl_support/forms_support.clj b/src/adl_support/forms_support.clj index 550fd3c..b7c2e3f 100644 --- a/src/adl_support/forms_support.clj +++ b/src/adl_support/forms_support.clj @@ -1,6 +1,6 @@ (ns adl-support.forms-support (:require [adl-support.core :refer [do-or-log-error do-or-return-reason]] - [adl-support.utils :refer [safe-name singularise]] + [adl-support.utils :refer [descendants-with-tag safe-name singularise]] [clojure.core.memoize :as memo] [clojure.data.json :as json] [clojure.java.io :as io] @@ -103,3 +103,10 @@ (reduce {} (map #(hash-map (keyword %) nil) ~fields)) ~params)) +(defn property-defaults + [entity] + (reduce + merge {} + (map + #(hash-map (keyword (-> % :attrs :name)) (-> % :attrs :default)) + (descendants-with-tag entity :property #(-> % :attrs :default))))) diff --git a/test/adl_support/forms_support_test.clj b/test/adl_support/forms_support_test.clj index 96b5755..20f94c4 100644 --- a/test/adl_support/forms_support_test.clj +++ b/test/adl_support/forms_support_test.clj @@ -1,4 +1,3 @@ - (ns adl-support.forms-support-test (:require [clojure.test :refer :all] [adl-support.forms-support :refer :all])) @@ -14,3 +13,22 @@ expected "auxlist-dwellings" actual (auxlist-data-name auxlist)] (is (= expected actual) "Just checking...")))) + + +(deftest prepare-insertion-params-tests + (testing "prepare-insertion-params" + (is (= {:test1 nil :test2 nil} + (prepare-insertion-params {} #{:test1 :test2})) + "Empty params; set") + (is (= {:test1 nil :test2 nil} + (prepare-insertion-params {} '(:test1 :test2))) + "Empty params; list") + (is (= {:test1 nil :test2 nil :test3 6} + (prepare-insertion-params {:test3 6} #{:test1 :test2})) + "Unlisted param; set") + (is (= {:test1 "foo" :test2 nil} + (prepare-insertion-params {:test1 "foo"} '(:test1 :test2))) + "Listed param; list") + (is (= {:test1 "foo" :test2 6} + (prepare-insertion-params {:test1 "foo" :test2 6} '(:test1 :test2))) + "Listed params; list")))