Skip to content

Commit

Permalink
Add :via to explain-data, when possible
Browse files Browse the repository at this point in the history
This closes #7
  • Loading branch information
jeaye committed Aug 13, 2017
1 parent 5e1986a commit b6899ec
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
10 changes: 7 additions & 3 deletions src/clj/orchestra/spec/test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -90,17 +90,21 @@ failure in instrument."
elems)))

(defn- spec-checking-fn
[v f fn-spec]
(let [fn-spec (@#'s/maybe-spec fn-spec)
[v f raw-fn-spec]
(let [fn-spec (@#'s/maybe-spec raw-fn-spec)
conform! (fn [v role spec data data-key]
(with-instrument-disabled
(let [conformed (s/conform spec data)]
(if (= ::s/invalid conformed)
(let [caller (->> (.getStackTrace (Thread/currentThread))
stacktrace-relevant-to-instrument
first)
via (if-some [n (#'s/spec-name spec)]
[n]
[])
ed (merge (assoc (s/explain-data* spec [role]
[] []
via
[]
data)
data-key data
::s/failure :instrument)
Expand Down
12 changes: 9 additions & 3 deletions src/cljs/orchestra_cljs/spec/test.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@
;; TODO: check ::caller result in other browsers - David

(defn- spec-checking-fn
[v f fn-spec]
(let [fn-spec (@#'s/maybe-spec fn-spec)
[v f raw-fn-spec]
(let [fn-spec (@#'s/maybe-spec raw-fn-spec)
conform! (fn [v role spec data data-key]
(let [conformed (s/conform spec data)]
(if (= ::s/invalid conformed)
Expand All @@ -89,7 +89,13 @@
(get-host-port)
(.-stack (js/Error.))
(get-env) nil))
ed (merge (assoc (s/explain-data* spec [role] [] [] data)
via (if-some [n (#'s/spec-name spec)]
[n]
[])
ed (merge (assoc (s/explain-data* spec [role]
via
[]
data)
data-key data
::s/failure :instrument)
(when caller
Expand Down

0 comments on commit b6899ec

Please sign in to comment.