mirror of
https://github.com/metosin/reitit.git
synced 2025-12-16 16:01:11 +00:00
parent
7520d20f12
commit
05bc331397
2 changed files with 13 additions and 1 deletions
|
|
@ -37,8 +37,11 @@
|
||||||
;; Default data
|
;; Default data
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
(defn -multi? [x]
|
||||||
|
(instance? #?(:clj clojure.lang.MultiFn :cljs cljs.core.MultiFn) x))
|
||||||
|
|
||||||
(s/def ::name keyword?)
|
(s/def ::name keyword?)
|
||||||
(s/def ::handler (s/or :fn fn? :var var?))
|
(s/def ::handler (s/or :fn fn? :var var? :multi -multi?))
|
||||||
(s/def ::no-doc boolean?)
|
(s/def ::no-doc boolean?)
|
||||||
(s/def ::conflicting boolean?)
|
(s/def ::conflicting boolean?)
|
||||||
(s/def ::default-data
|
(s/def ::default-data
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,9 @@
|
||||||
(s/def ::role #{:admin :user})
|
(s/def ::role #{:admin :user})
|
||||||
(s/def ::roles (s/and (s/coll-of ::role :into #{}) set?))
|
(s/def ::roles (s/and (s/coll-of ::role :into #{}) set?))
|
||||||
|
|
||||||
|
(defmulti my-multi (constantly :default))
|
||||||
|
(defmethod my-multi :default [x] x)
|
||||||
|
|
||||||
(deftest route-data-validation-test
|
(deftest route-data-validation-test
|
||||||
(testing "validation is turned off by default"
|
(testing "validation is turned off by default"
|
||||||
(is (r/router?
|
(is (r/router?
|
||||||
|
|
@ -85,6 +88,12 @@
|
||||||
(ring/router
|
(ring/router
|
||||||
["/api" {:handler identity
|
["/api" {:handler identity
|
||||||
:middleware '()}]
|
:middleware '()}]
|
||||||
|
{:validate rrs/validate}))))
|
||||||
|
|
||||||
|
(testing "handler can be a multimethod"
|
||||||
|
(is (r/router?
|
||||||
|
(ring/router
|
||||||
|
["/api" {:get {:handler my-multi}}]
|
||||||
{:validate rrs/validate})))))
|
{:validate rrs/validate})))))
|
||||||
|
|
||||||
(deftest coercion-spec-test
|
(deftest coercion-spec-test
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue