1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
(ns nrepl.describe-test
{:author "Chas Emerick"}
(:require
[clojure.test :refer [is testing use-fixtures]]
[nrepl.core :as nrepl]
[nrepl.core-test :refer [def-repl-test repl-server-fixture]]
[nrepl.middleware :as middleware]
[nrepl.server :as server]
[nrepl.version :as version]))
(use-fixtures :once repl-server-fixture)
(def-repl-test simple-describe
(let [{{:keys [nrepl clojure java]} :versions
ops :ops} (nrepl/combine-responses
(nrepl/message timeout-client {:op "describe"}))]
(testing "versions"
(when-not (every? #(contains? java %) [:major :minor :incremental :update])
(println "Got less information out of `java.version` than we'd like:"
(System/getProperty "java.version") "=>" java))
(is (= (#'middleware/safe-version version/version) nrepl))
(is (= (#'middleware/safe-version *clojure-version*) (dissoc clojure :version-string)))
(is (= (clojure-version) (:version-string clojure)))
(is (= (System/getProperty "java.version") (:version-string java))))
(is (= server/built-in-ops (set (map name (keys ops)))))
(is (every? empty? (map val ops)))))
(def-repl-test verbose-describe
(let [{:keys [ops aux]} (nrepl/combine-responses
(nrepl/message timeout-client
{:op "describe" :verbose? "true"}))]
(is (= server/built-in-ops (set (map name (keys ops)))))
(is (every? seq (map (comp :doc val) ops)))
(is (= {:current-ns "user"} aux))))
|