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 36
|
(ns nrepl.middleware.completion-test
{:author "Bozhidar Batsov"}
(:require
[clojure.test :refer :all]
[nrepl.core :as nrepl]
[nrepl.core-test :refer [def-repl-test repl-server-fixture project-base-dir clean-response]])
(:import
(java.io File)))
(use-fixtures :each repl-server-fixture)
(defn dummy-completion [prefix _ns _options]
[{:candidate prefix}])
(def-repl-test completions-op
(let [result (-> (nrepl/message session {:op "completions" :prefix "map" :ns "clojure.core"})
nrepl/combine-responses
clean-response
(select-keys [:completions :status]))]
(is (= #{:done} (:status result)))
(is (not-empty (:completions result)))))
(def-repl-test completions-op-error
(let [result (-> (nrepl/message session {:op "completions"})
nrepl/combine-responses
clean-response
(select-keys [:completions :status]))]
(is (= #{:done :completion-error :namespace-not-found} (:status result)))))
(def-repl-test completions-op-custom-fn
(let [result (-> (nrepl/message session {:op "completions" :prefix "map" :ns "clojure.core" :complete-fn "nrepl.middleware.completion-test/dummy-completion"})
nrepl/combine-responses
clean-response
(select-keys [:completions :status]))]
(is (= #{:done} (:status result)))
(is (= [{:candidate "map"}] (:completions result)))))
|