File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4141 (with-meta [(deref r)] (meta r)))
4242
4343(extend-protocol p/Datafiable
44+ js/Error
45+ (datafy [x] (Throwable->map x))
46+
47+ ExceptionInfo
48+ (datafy [x] (Throwable->map x))
49+
4450 Var
4551 (datafy [r] (datify-ref r))
4652
Original file line number Diff line number Diff line change 2222 x (with-meta original {`clojure.core.protocols/datafy (fn [_] datafied)})]
2323 (is (= datafied (d/datafy x)))
2424 (is (= {:clojure.datafy/obj original} (meta (d/datafy x)))))))
25+
26+ (deftest datafy-js-errors-test
27+ (let [x (js/Error. " foo" )]
28+ (is (= (Throwable->map x) (d/datafy x))))
29+ ; ; Ensure we can datafy objects that extend js/Error
30+ (let [x (js/RangeError. " x must be between 1 and 5" )]
31+ (is (= (Throwable->map x) (d/datafy x)))))
32+
33+ (deftest datafy-ex-info-test
34+ (let [x (ex-info " foo" {:a 1 } (ex-info " bar" {:b 2 }))]
35+ (is (= (Throwable->map x) (d/datafy x)))))
You can’t perform that action at this time.
0 commit comments