35 lines
1.1 KiB
Clojure
35 lines
1.1 KiB
Clojure
(ns orchestra.expound-test
|
|
(:require #?@(:clj [[clojure.test :refer :all]
|
|
[clojure.spec.alpha :as s]
|
|
[orchestra.spec.test :as st]
|
|
[orchestra.core :refer [defn-spec]]]
|
|
|
|
:cljs [[cljs.test
|
|
:refer-macros [deftest testing is use-fixtures]]
|
|
[cljs.spec.alpha :as s]
|
|
[orchestra-cljs.spec.test :as st]
|
|
[orchestra.core :refer-macros [defn-spec]]])
|
|
|
|
[expound.alpha :as expound]))
|
|
|
|
(defn-spec instrument-fixture any?
|
|
[f fn?]
|
|
(st/unstrument)
|
|
(st/instrument)
|
|
(binding [s/*explain-out* expound/printer]
|
|
(f)))
|
|
(use-fixtures :each instrument-fixture)
|
|
|
|
(defn-spec expound' true?
|
|
[blah string?]
|
|
true)
|
|
|
|
(deftest expound
|
|
(testing "Pretty printed"
|
|
(try
|
|
(expound' 42)
|
|
(catch #?(:clj RuntimeException :cljs :default) e
|
|
(is (some? (-> (ex-data e)
|
|
s/explain-out
|
|
with-out-str
|
|
(clojure.string/includes? "-- Spec failed --"))))))))
|