File: helpers_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 (47 lines) | stat: -rw-r--r-- 1,778 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(ns nrepl.helpers-test
  {:author "Chas Emerick"}
  (:require
   [clojure.test :refer :all]
   [nrepl.core :as nrepl]
   [nrepl.core-test :refer [def-repl-test repl-server-fixture]]
   [nrepl.helpers :as helpers])
  (:import
   (java.io File)))

(def ^File project-base-dir (File. (System/getProperty "nrepl.basedir" ".")))

(use-fixtures :once repl-server-fixture)

(def-repl-test load-code-with-debug-info
  ;; bizarrely, the path of the test script generated by clojure-maven-plugin
  ;; ends up being in the :file metadata here on Clojure 1.3.0+, but
  ;; passes in 1.2.0...
  #_(repl-eval session "\n\n\n(defn function [])")
  #_(is (= [{:file "NO_SOURCE_PATH" :line 4}]
           (repl-values session "(-> #'function meta (select-keys [:file :line]))")))

  (repl-values session
               (helpers/load-file-command
                "\n\n\n\n\n\n\n\n\n(defn dfunction [])"
                "path/from/source/root.clj"
                "root.clj"))

  (is (= [{:file "path/from/source/root.clj" :line 10}]
         (repl-values session
                      (nrepl/code
                       (-> #'dfunction
                           meta
                           (select-keys [:file :line])))))))

(def-repl-test load-file-with-debug-info
  (repl-values session
               (helpers/load-file-command
                (File. project-base-dir "load-file-test/nrepl/load_file_sample.clj")
                (File. project-base-dir "load-file-test")))
  (is (= [{:file (.replace "nrepl/load_file_sample.clj" "/" File/separator)
           :line 5}]
         (repl-values session
                      (nrepl/code
                       (-> #'nrepl.load-file-sample/dfunction
                           meta
                           (select-keys [:file :line])))))))