|
1 | 1 | (ns cider.nrepl.middleware.macroexpand-test
|
2 | 2 | (:refer-clojure :exclude [zero? zipmap])
|
3 | 3 | (:require
|
| 4 | + [cider.nrepl] |
4 | 5 | [cider.nrepl.test-session :as session]
|
5 | 6 | [clojure.set :as set]
|
6 | 7 | [clojure.string]
|
7 |
| - [clojure.test :refer :all])) |
| 8 | + [clojure.test :refer :all] |
| 9 | + [nrepl.middleware.interruptible-eval] |
| 10 | + [nrepl.middleware.print] |
| 11 | + [nrepl.middleware.session])) |
8 | 12 |
|
9 | 13 | (use-fixtures :once session/session-fixture)
|
10 | 14 |
|
|
166 | 170 | :print-meta "true"})]
|
167 | 171 | (is (= "(def ^{:arglists (quote ([]))} x (fn ([] nil)))" expansion))
|
168 | 172 | (is (= #{"done"} status)))))
|
| 173 | + |
| 174 | +(deftest print-mw-before-macroexpand-mw-test |
| 175 | + (testing "if print middleware ends up before macroexpand mw on the way up, |
| 176 | +it doesn't mess up macroexpansion output" |
| 177 | + ;; Start a custom server |
| 178 | + (binding [session/*handler* (cider.nrepl/wrap-macroexpand |
| 179 | + (nrepl.middleware.session/session |
| 180 | + (nrepl.middleware.print/wrap-print |
| 181 | + (nrepl.middleware.interruptible-eval/interruptible-eval nil))))] |
| 182 | + (session/session-fixture |
| 183 | + (fn [] |
| 184 | + (let [{:keys [expansion status]} (session/message {:op "macroexpand" |
| 185 | + :expander "macroexpand-1" |
| 186 | + :code (:expr code) |
| 187 | + :display-namespaces "none"})] |
| 188 | + (is (= (:expanded-1 code) expansion))) |
| 189 | + |
| 190 | + (let [{:keys [expansion status]} (session/message {:op "macroexpand" |
| 191 | + :expander "macroexpand" |
| 192 | + :code (:expr code) |
| 193 | + :display-namespaces "none"})] |
| 194 | + (is (= (:expanded code) expansion)))))))) |
0 commit comments