Skip to content

Instantly share code, notes, and snippets.

@mfikes
Created November 8, 2018 21:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mfikes/c1b6ce9b7a3a80559774bd89accaea50 to your computer and use it in GitHub Desktop.
Save mfikes/c1b6ce9b7a3a80559774bd89accaea50 to your computer and use it in GitHub Desktop.
(ns my-test.core
(:require
[cljs.spec.alpha :as s]
[cljs.spec.test.alpha :as stest]))
(defmacro instrument-without [exclude-syms]
`(stest/instrument '[~@(apply disj
(#?(:clj s/speced-vars
:cljs cljs.spec.alpha$macros/speced-vars))
(eval exclude-syms))]))
$ clj -m cljs.main -re node -r
ClojureScript 1.10.439
cljs.user=> (require '[clojure.spec.test.alpha :as st])
nil
cljs.user=> (require '[clojure.spec.alpha :as s])
nil
cljs.user=> (defn foo [x] (inc x))
#'cljs.user/foo
cljs.user=> (defn bar [x] (inc x))
#'cljs.user/bar
cljs.user=> (s/fdef foo :args (s/cat :x int?))
cljs.user/foo
cljs.user=> (s/fdef bar :args (s/cat :x int?))
cljs.user/bar
cljs.user=> (require-macros 'my-test.core)
nil
cljs.user=> (my-test.core/instrument-without `[bar])
[cljs.user/foo]
cljs.user=> (st/unstrument)
[cljs.user/foo]
cljs.user=> (my-test.core/instrument-without [`bar])
[cljs.user/foo]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment