babashka/test-resources/lib_tests/orchestra/expound_test.cljc
2021-12-08 22:57:16 +01:00

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 --"))))))))