File: transport_test.clj

package info (click to toggle)
nrepl-clojure 1.0.0-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,996 kB
  • sloc: makefile: 50; java: 19; sh: 15; xml: 10
file content (23 lines) | stat: -rw-r--r-- 1,045 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(ns nrepl.transport-test
  (:require [nrepl.transport :as sut]
            [clojure.test :refer [deftest testing is]])
  (:import [java.io ByteArrayOutputStream]))

(deftest bencode-safe-write-test
  (testing "safe-write-bencode only writes if the whole message is writable"
    (let [out (ByteArrayOutputStream.)]
      (is (thrown? IllegalArgumentException
                   (#'sut/safe-write-bencode out {"obj" (Object.)})))
      (is (empty? (.toByteArray out))))))

(deftest tty-read-conditional-test
  (testing "tty-read-msg is configured to read conditionals"
    (let [in (-> "(try nil (catch #?(:clj Throwable :cljr Exception) e nil))"
                 (java.io.StringReader.)
                 (java.io.PushbackReader.))
          out (ByteArrayOutputStream.)]
      (is (= ['(try nil (catch Throwable e nil))]
             (let [^nrepl.transport.FnTransport fn-transport (sut/tty in out nil)]
               (.recv fn-transport)     ;; :op "clone"
               (-> (.recv fn-transport) ;; :op "eval"
                   :code)))))))