Skip to content

Commit 9f0357b

Browse files
Bump compliment to 0.7.0
1 parent 8afe879 commit 9f0357b

File tree

3 files changed

+55
-63
lines changed

3 files changed

+55
-63
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
## master (unreleased)
44

5+
* Bump `compliment` to [0.7.0](https://github.com/alexander-yakushev/compliment/blob/master/CHANGELOG.md#070-2025-03-25).
6+
57
## 0.53.0 (2025-03-19)
68

79
* Bump `orchard` to [0.31.1](https://github.com/clojure-emacs/orchard/blob/master/CHANGELOG.md#0311-2025-03-19).

project.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
^:inline-dep [thunknyc/profile "0.5.2"]
2626
^:inline-dep [mvxcvi/puget "1.3.4" :exclusions [org.clojure/clojure]]
2727
^:inline-dep [fipp ~fipp-version] ; can be removed in unresolved-tree mode
28-
^:inline-dep [compliment "0.6.0"]
28+
^:inline-dep [compliment "0.7.0"]
2929
^:inline-dep [org.rksm/suitable "0.6.2" :exclusions [org.clojure/clojure
3030
org.clojure/clojurescript]]
3131
^:inline-dep [cljfmt "0.9.2" :exclusions [org.clojure/clojurescript

test/clj/cider/nrepl/middleware/complete_test.clj

Lines changed: 52 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2,80 +2,70 @@
22
(:require
33
[cider.nrepl.middleware.complete :as c]
44
[cider.nrepl.test-session :as session]
5-
[clojure.test :refer :all]))
5+
[cider.test-helpers :refer :all]
6+
[clojure.test :refer :all]
7+
[matcher-combinators.matchers :as matchers]))
68

79
(use-fixtures :each session/session-fixture)
810

911
(deftest complete
1012
(testing "blank"
11-
(let [response (session/message {:op "complete"
12-
:ns "user"
13-
:prefix ""})]
14-
(is (= #{"done"} (:status response)))
15-
(is (sequential? (:completions response)))
16-
(is (every? map? (:completions response)))))
13+
(is+ {:status #{"done"}
14+
:completions (matchers/seq-of map?)}
15+
(session/message {:op "complete"
16+
:ns "user"
17+
:prefix ""})))
1718

1819
(testing "basic usage"
19-
(let [response (session/message {:op "complete"
20-
:ns "user"
21-
:prefix "filt"})]
22-
(is (= #{"filter" "filterv"} (->> response
23-
:completions
24-
(map :candidate)
25-
set)))
26-
27-
(is (= #{"clojure.core"} (->> response
28-
:completions
29-
(map :ns)
30-
set)))
31-
32-
(is (= #{"done"} (:status response)))))
20+
(is+ {:status #{"done"}
21+
:completions [{:candidate "filter" :ns "clojure.core" :priority 31}
22+
{:candidate "filterv" :ns "clojure.core" :priority 31}]}
23+
(session/message {:op "complete"
24+
:ns "user"
25+
:prefix "filt"})))
3326

3427
(testing "function arglists"
35-
(let [response (session/message {:op "complete"
36-
:ns "user"
37-
:prefix "unchecked-a"
38-
:extra-metadata ["arglists"]})]
39-
(is (= {:arglists '("[x y]") :ns "clojure.core", :candidate "unchecked-add", :type "function"}
40-
(first (:completions response))))))
28+
(is+ {:arglists '("[x y]") :ns "clojure.core", :candidate "unchecked-add", :type "function"}
29+
(-> (session/message {:op "complete"
30+
:ns "user"
31+
:prefix "unchecked-a"
32+
:extra-metadata ["arglists"]})
33+
:completions first)))
4134

4235
(testing "function metadata"
43-
(let [response (session/message {:op "complete"
44-
:ns "user"
45-
:prefix "assoc"
46-
:extra-metadata ["arglists" "doc"]})
47-
candidate (first (:completions response))]
48-
(is (= '("[map key val]" "[map key val & kvs]") (:arglists candidate)))
49-
(is (string? (:doc candidate)))))
36+
(is+ {:arglists ["[map key val]" "[map key val & kvs]"]
37+
:doc string?}
38+
(first (:completions (session/message {:op "complete"
39+
:ns "user"
40+
:prefix "assoc"
41+
:extra-metadata ["arglists" "doc"]})))))
5042

5143
(testing "macro metadata"
52-
(let [response (session/message {:op "complete"
53-
:ns "user"
54-
:prefix "defprot"
55-
:extra-metadata ["arglists" "doc"]})
56-
candidate (first (:completions response))]
57-
(is (= '("[name & opts+sigs]") (:arglists candidate)))
58-
(is (string? (:doc candidate)))))
44+
(is+ {:arglists ["[name & opts+sigs]"]
45+
:doc string?}
46+
(first (:completions (session/message {:op "complete"
47+
:ns "user"
48+
:prefix "defprot"
49+
:extra-metadata ["arglists" "doc"]})))))
5950

6051
(testing "Clojure 1.12 qualified methods"
6152
(when (or (> (:major *clojure-version*) 1)
6253
(>= (:minor *clojure-version*) 12))
63-
(let [response (session/message {:op "complete"
64-
:ns "user"
65-
:prefix "Thread/.int"})]
66-
(is (= {:candidate "Thread/.interrupt", :type "method"}
67-
(first (:completions response))))))))
54+
(is+ {:candidate "Thread/.interrupt", :type "method"}
55+
(first (:completions (session/message {:op "complete"
56+
:ns "user"
57+
:prefix "Thread/.int"})))))))
6858

6959
(deftest complete-doc-test
7060
(testing "blank"
71-
(let [response (session/message {:op "complete-doc" :sym ""})]
72-
(is (= #{"done"} (:status response)))
73-
(is (empty? (:completion-doc response)))))
61+
(is+ {:status #{"done"}
62+
:completion-doc empty?}
63+
(session/message {:op "complete-doc" :sym ""})))
7464

7565
(testing "basic usage"
76-
(let [response (session/message {:op "complete-doc" :sym "true?"})]
77-
(is (= (:status response) #{"done"}))
78-
(is (-> response ^String (:completion-doc) (.startsWith "clojure.core/true?\n([x"))))))
66+
(is+ {:status #{"done"}
67+
:completion-doc #"^clojure.core/true\?"}
68+
(session/message {:op "complete-doc" :sym "true?"}))))
7969

8070
(deftest complete-flush-caches-test
8171
(testing "basic usage"
@@ -85,16 +75,16 @@
8575
(deftest error-handling-test
8676
(testing "complete op error handling"
8777
(with-redefs [c/complete (fn [& _] (throw (Exception. "complete-exc")))]
88-
(let [response (session/message {:op "complete" :ns "doesn't matter" :prefix "fake"})]
89-
(is (= (:ex response) "class java.lang.Exception"))
90-
(is (= (:status response) #{"complete-error" "done"}))
91-
(is (-> response ^String (:err) (.startsWith "java.lang.Exception: complete-exc")))
92-
(is (:pp-stacktrace response)))))
78+
(is+ {:ex "class java.lang.Exception"
79+
:status #{"complete-error" "done"}
80+
:err #"^java.lang.Exception: complete-exc"
81+
:pp-stacktrace some?}
82+
(session/message {:op "complete" :ns "doesn't matter" :prefix "fake"}))))
9383

9484
(testing "complete-doc op error handling"
9585
(with-redefs [c/completion-doc (fn [& _] (throw (Exception. "complete-doc-exc")))]
96-
(let [response (session/message {:op "complete-doc" :sym "doesn't matter"})]
97-
(is (= (:ex response) "class java.lang.Exception"))
98-
(is (= (:status response) #{"complete-doc-error" "done"}))
99-
(is (-> response ^String (:err) (.startsWith "java.lang.Exception: complete-doc-exc")))
100-
(is (:pp-stacktrace response))))))
86+
(is+ {:ex "class java.lang.Exception"
87+
:status #{"complete-doc-error" "done"}
88+
:err #"^java.lang.Exception: complete-doc-exc"
89+
:pp-stacktrace some?}
90+
(session/message {:op "complete-doc" :sym "doesn't matter"})))))

0 commit comments

Comments
 (0)