|
84 | 84 | :pprint "true"
|
85 | 85 | :pprint-fn "cider.nrepl.middleware.pprint/fipp-pprint"}]
|
86 | 86 | (is (= "{nil [nil nil nil #{nil} nil nil nil]}\n"
|
87 |
| - (:pprint-out (session/message message)))))) |
| 87 | + (:pprint-out (session/message message))))))) |
88 | 88 |
|
| 89 | +(deftest wrap-pprint-custom-pprint-fn-test |
89 | 90 | (testing "fipp-pprint respects the :print-meta slot"
|
90 | 91 | (is (= "^{:a :b}\n{}\n"
|
91 | 92 | (:pprint-out (session/message {:op :eval
|
|
122 | 123 | :code "^{:a :b} {}"
|
123 | 124 | :pprint "true"
|
124 | 125 | :pprint-fn "cider.nrepl.middleware.pprint/fipp-pprint"
|
125 |
| - :print-meta "true"}))))) |
| 126 | + :print-meta "true"})))))) |
126 | 127 |
|
| 128 | +(deftest ^{:max-clj-version "1.9.0"} wrap-pprint-resolve-pprint-fn-1.9-test |
127 | 129 | (testing "non-resolvable pprint-fn"
|
128 | 130 | (testing "non-existing ns"
|
129 | 131 | (let [response (session/message {:op :eval
|
|
154 | 156 | (is (= (:ex response) "class java.lang.NullPointerException"))
|
155 | 157 | (is (= (:root-ex response) "class java.lang.NullPointerException"))
|
156 | 158 | (is (.startsWith (:err response) "NullPointerException clojure.lang.Var.find"))))))
|
| 159 | + |
| 160 | +(deftest ^{:min-clj-version "1.10.0"} wrap-pprint-resolve-pprint-fn-1.10-test |
| 161 | + (testing "non-resolvable pprint-fn" |
| 162 | + (testing "non-existing ns" |
| 163 | + (let [response (session/message {:op :eval |
| 164 | + :code "nil" |
| 165 | + :pprint "true" |
| 166 | + :pprint-fn "never-used-ns-example/pprint"})] |
| 167 | + (is (= (:status response) #{"eval-error" "done"})) |
| 168 | + (is (= (:ex response) "class clojure.lang.ExceptionInfo")) |
| 169 | + (is (= (:root-ex response) "class java.lang.IllegalArgumentException")) |
| 170 | + |
| 171 | + (is (.startsWith (:err response) "Error printing return value (IllegalArgumentException) at clojure.lang.Var/find ")) |
| 172 | + (is (.contains (:err response) "No such namespace: never-used-ns-example")))) |
| 173 | + |
| 174 | + (testing "non-existing Var" |
| 175 | + (let [response (session/message {:op :eval |
| 176 | + :code "nil" |
| 177 | + :pprint "true" |
| 178 | + :pprint-fn "clojure.core/never-used-pprint-example"})] |
| 179 | + (is (= (:status response) #{"eval-error" "done"})) |
| 180 | + (is (= (:ex response) "class clojure.lang.ExceptionInfo")) |
| 181 | + (is (= (:root-ex response) "class java.lang.IllegalArgumentException")) |
| 182 | + (is (.startsWith (:err response) "Error printing return value (IllegalArgumentException) at cider.nrepl.middleware.pprint/resolve-pprint-fn")) |
| 183 | + (is (.contains (:err response) "clojure.core/never-used-pprint-example is not resolvable to a var")))) |
| 184 | + |
| 185 | + (testing "nil input" |
| 186 | + (let [response (session/message {:op :eval |
| 187 | + :code "nil" |
| 188 | + :pprint "true" |
| 189 | + :pprint-fn nil})] |
| 190 | + (is (= (:status response) #{"eval-error" "done"})) |
| 191 | + (is (= (:ex response) "class clojure.lang.ExceptionInfo")) |
| 192 | + (is (= (:root-ex response) "class java.lang.NullPointerException")) |
| 193 | + (is (.startsWith (:err response) "Error printing return value (NullPointerException) at clojure.lang.Var/find")))))) |
0 commit comments