|
28 | 28 | (use-fixtures :each session/session-fixture inspect-tap-current-value-test-fixture)
|
29 | 29 |
|
30 | 30 | (def nil-result
|
31 |
| - '["nil" (:newline)]) |
| 31 | + ["nil" [:newline]]) |
32 | 32 |
|
33 | 33 | (def any-var true)
|
34 | 34 |
|
35 | 35 | (def var-result
|
36 |
| - '("Class: " |
37 |
| - (:value "clojure.lang.Var" 0) |
38 |
| - (:newline) |
39 |
| - "Value: " |
40 |
| - (:value "true" 1) |
41 |
| - (:newline) |
42 |
| - (:newline) |
43 |
| - "--- Meta Information:" |
44 |
| - (:newline) |
45 |
| - " " |
46 |
| - (:value ":line" 2) " = " (:value #"\d+" 3) (:newline) |
47 |
| - " " |
48 |
| - (:value ":column" 4) " = " (:value #"\d+" 5) (:newline) |
49 |
| - " " |
50 |
| - (:value ":file" 6) " = " (:value #"\".*cider/nrepl/middleware/inspect_test.clj\"" 7) (:newline) |
51 |
| - " " |
52 |
| - (:value ":name" 8) " = " (:value "any-var" 9) (:newline) |
53 |
| - " " |
54 |
| - (:value ":ns" 10) " = " (:value "cider.nrepl.middleware.inspect-test" 11) (:newline) |
55 |
| - (:newline) |
56 |
| - "--- Datafy:" (:newline) |
57 |
| - " " "0" ". " (:value "true" 12) (:newline))) |
| 36 | + ["Class: " [:value "clojure.lang.Var" 0] [:newline] |
| 37 | + "Value: " [:value "true" 1] [:newline] |
| 38 | + [:newline] |
| 39 | + "--- Meta Information:" [:newline] |
| 40 | + " " [:value ":line" 2] " = " [:value #"\d+" 3] [:newline] |
| 41 | + " " [:value ":column" 4] " = " [:value #"\d+" 5] [:newline] |
| 42 | + " " [:value ":file" 6] " = " [:value #"\".*cider/nrepl/middleware/inspect_test.clj\"" 7] [:newline] |
| 43 | + " " [:value ":name" 8] " = " [:value "any-var" 9] [:newline] |
| 44 | + " " [:value ":ns" 10] " = " [:value "cider.nrepl.middleware.inspect-test" 11] [:newline] |
| 45 | + [:newline] |
| 46 | + "--- Datafy:" [:newline] |
| 47 | + " 0. " [:value "true" 12] [:newline]]) |
58 | 48 |
|
59 | 49 | (def code "(sorted-map :a {:b 1} :c \"a\" :d 'e :f [2 3])")
|
60 | 50 |
|
61 | 51 | (def infinite-map-code "(let [m (java.util.HashMap.)] (.put m (symbol \"very long key to avoid stack overflow before limit reaches\") m) m)")
|
62 | 52 |
|
63 | 53 | (def inspect-result
|
64 |
| - '("Class: " |
65 |
| - (:value "clojure.lang.PersistentTreeMap" 0) |
66 |
| - (:newline) |
67 |
| - "Count: " |
68 |
| - "4" |
69 |
| - (:newline) |
70 |
| - (:newline) |
71 |
| - "--- Contents:" |
72 |
| - (:newline) |
73 |
| - " " (:value ":a" 1) " = " (:value "{:b 1}" 2) |
74 |
| - (:newline) |
75 |
| - " " (:value ":c" 3) " = " (:value "\"a\"" 4) |
76 |
| - (:newline) |
77 |
| - " " (:value ":d" 5) " = " (:value "e" 6) |
78 |
| - (:newline) |
79 |
| - " " (:value ":f" 7) " = " (:value "[2 3]" 8) |
80 |
| - (:newline))) |
| 54 | + ["Class: " [:value "clojure.lang.PersistentTreeMap" 0] [:newline] |
| 55 | + "Count: 4" [:newline] |
| 56 | + [:newline] |
| 57 | + "--- Contents:" [:newline] |
| 58 | + " " [:value ":a" 1] " = " [:value "{:b 1}" 2] [:newline] |
| 59 | + " " [:value ":c" 3] " = " [:value "\"a\"" 4] [:newline] |
| 60 | + " " [:value ":d" 5] " = " [:value "e" 6] [:newline] |
| 61 | + " " [:value ":f" 7] " = " [:value "[2 3]" 8] [:newline]]) |
81 | 62 |
|
82 | 63 | (def push-result
|
83 |
| - '("Class: " |
84 |
| - (:value "clojure.lang.PersistentArrayMap" 0) |
85 |
| - (:newline) |
86 |
| - "Count: " |
87 |
| - "1" |
88 |
| - (:newline) |
89 |
| - (:newline) |
90 |
| - "--- Contents:" |
91 |
| - (:newline) |
92 |
| - " " (:value ":b" 1) " = " (:value "1" 2) |
93 |
| - (:newline) |
94 |
| - (:newline) |
95 |
| - "--- Path:" |
96 |
| - (:newline) |
97 |
| - " " ":a")) |
| 64 | + ["Class: " [:value "clojure.lang.PersistentArrayMap" 0] [:newline] |
| 65 | + "Count: 1" [:newline] |
| 66 | + [:newline] |
| 67 | + "--- Contents:" [:newline] |
| 68 | + " " [:value ":b" 1] " = " [:value "1" 2] [:newline] |
| 69 | + [:newline] |
| 70 | + "--- Path:" [:newline] |
| 71 | + " :a"]) |
98 | 72 |
|
99 | 73 | (def sibling-result
|
100 |
| - '("Class: " |
101 |
| - (:value "java.lang.String" 0) |
102 |
| - (:newline) |
103 |
| - "Value: " |
104 |
| - "\"c\"" |
105 |
| - (:newline) |
106 |
| - (:newline) |
107 |
| - "--- Print:" |
108 |
| - (:newline) |
109 |
| - " " |
110 |
| - "c" |
111 |
| - (:newline) |
112 |
| - (:newline) |
113 |
| - "--- Path:" |
114 |
| - (:newline) |
115 |
| - " " |
116 |
| - "(nth 2)")) |
| 74 | + ["Class: " [:value "java.lang.String" 0] [:newline] |
| 75 | + "Value: \"c\"" [:newline] |
| 76 | + [:newline] |
| 77 | + "--- Print:" [:newline] |
| 78 | + " c" [:newline] |
| 79 | + [:newline] |
| 80 | + "--- Path:" [:newline] |
| 81 | + " (nth 2)"]) |
117 | 82 |
|
118 | 83 | (def next-page-result
|
119 |
| - '("Class: " |
120 |
| - (:value "clojure.lang.LazySeq" 0) |
121 |
| - (:newline) |
122 |
| - (:newline) |
123 |
| - "--- Contents:" |
124 |
| - (:newline) |
125 |
| - " " "..." |
126 |
| - (:newline) |
127 |
| - " " "32" ". " (:value "32" 1) |
128 |
| - (:newline) |
129 |
| - " " "33" ". " (:value "33" 2) |
130 |
| - (:newline) |
131 |
| - " " "34" ". " (:value "34" 3) |
132 |
| - (:newline) |
133 |
| - (:newline) |
134 |
| - "--- Page Info:" |
135 |
| - (:newline) |
136 |
| - " " "Page size: 32, showing page: 2 of 2" |
137 |
| - (:newline))) |
| 84 | + ["Class: " [:value "clojure.lang.LazySeq" 0] [:newline] |
| 85 | + [:newline] |
| 86 | + "--- Contents:" [:newline] |
| 87 | + " ..." [:newline] |
| 88 | + " 32. " [:value "32" 1] [:newline] |
| 89 | + " 33. " [:value "33" 2] [:newline] |
| 90 | + " 34. " [:value "34" 3] [:newline] |
| 91 | + [:newline] |
| 92 | + "--- Page Info:" [:newline] |
| 93 | + " Page size: 32, showing page: 2 of 2" [:newline]]) |
138 | 94 |
|
139 | 95 | (def first-page-result
|
140 |
| - '("Class: " |
141 |
| - (:value "clojure.lang.LazySeq" 0) |
142 |
| - (:newline) |
143 |
| - (:newline) |
144 |
| - "--- Contents:" |
145 |
| - (:newline) |
146 |
| - " " "0" ". " (:value "0" 1) |
147 |
| - (:newline) |
148 |
| - " " "1" ". " (:value "1" 2) |
149 |
| - (:newline) |
150 |
| - " " "2" ". " (:value "2" 3) |
151 |
| - (:newline) |
152 |
| - " " "3" ". " (:value "3" 4) |
153 |
| - (:newline) |
154 |
| - " " "4" ". " (:value "4" 5) |
155 |
| - (:newline) |
156 |
| - " " "..." |
157 |
| - (:newline) |
158 |
| - (:newline) |
159 |
| - "--- Page Info:" |
160 |
| - (:newline) |
161 |
| - " " "Page size: 5, showing page: 1 of ?" |
162 |
| - (:newline))) |
| 96 | + ["Class: " [:value "clojure.lang.LazySeq" 0] [:newline] |
| 97 | + [:newline] |
| 98 | + "--- Contents:" [:newline] |
| 99 | + " 0. " [:value "0" 1] [:newline] |
| 100 | + " 1. " [:value "1" 2] [:newline] |
| 101 | + " 2. " [:value "2" 3] [:newline] |
| 102 | + " 3. " [:value "3" 4] [:newline] |
| 103 | + " 4. " [:value "4" 5] [:newline] |
| 104 | + " ..." [:newline] |
| 105 | + [:newline] |
| 106 | + "--- Page Info:" [:newline] |
| 107 | + " Page size: 5, showing page: 1 of ?" [:newline]]) |
163 | 108 |
|
164 | 109 | (defn value [{:keys [value]}]
|
165 | 110 | (edn/read-string (first value)))
|
|
664 | 609 | "\"[[[[[[...]]]]]]\""))))))
|
665 | 610 |
|
666 | 611 | (def normal-mode-prefix
|
667 |
| - ["--- Contents:" |
668 |
| - [:newline] |
669 |
| - " " "0" ". " [:value "1" number?] |
670 |
| - [:newline] |
671 |
| - " " "1" ". " [:value "2" number?] |
672 |
| - [:newline] |
673 |
| - " " "2" ". " [:value "3" number?]]) |
| 612 | + ["--- Contents:" [:newline] |
| 613 | + " 0. " [:value "1" number?] [:newline] |
| 614 | + " 1. " [:value "2" number?] [:newline] |
| 615 | + " 2. " [:value "3" number?]]) |
674 | 616 |
|
675 | 617 | (def object-mode-prefix
|
676 | 618 | ["--- Instance fields:"
|
|
708 | 650 | (is+ (matchers/prefix object-mode-prefix)
|
709 | 651 | (value-skip-header (session/message {:op "inspect-toggle-view-mode"})))
|
710 | 652 | (is+ (matchers/prefix ["--- Contents:" [:newline]
|
711 |
| - " " "0" ". " [:value "2" number?] [:newline] |
712 |
| - " " "1" ". " [:value "3" number?] [:newline]]) |
| 653 | + " 0. " [:value "2" number?] [:newline] |
| 654 | + " 1. " [:value "3" number?] [:newline]]) |
713 | 655 | (value-skip-header (session/message {:op "inspect-push" :idx 13})))))
|
714 | 656 |
|
| 657 | +(deftest display-analytics-integration-test |
| 658 | + (testing "analytics can be displayed with inspect-display-analytics" |
| 659 | + (session/message {:op "inspect-clear"}) |
| 660 | + (value-skip-header (session/message {:op "eval" |
| 661 | + :inspect "true" |
| 662 | + :code "(range 100)"})) |
| 663 | + (is+ (matchers/prefix ["--- Analytics:" [:newline] |
| 664 | + " " [:value ":count" pos?] " = " [:value "100" pos?] [:newline] |
| 665 | + " " [:value ":types" pos?] " = " [:value "{java.lang.Long 100}" pos?] [:newline]]) |
| 666 | + (value-skip-header (session/message {:op "inspect-display-analytics"})))) |
| 667 | + |
| 668 | + (testing "analytics hint is displayed when requested" |
| 669 | + (session/message {:op "inspect-clear"}) |
| 670 | + (is+ (matchers/prefix ["--- Analytics:" [:newline] #"Press 'y' or M-x"]) |
| 671 | + (value-skip-header (session/message {:op "eval" |
| 672 | + :inspect "true" |
| 673 | + :code "(range 100)" |
| 674 | + :display-analytics-hint "true"}))))) |
| 675 | + |
715 | 676 | (deftest print-length-independence-test
|
716 | 677 | (testing "*print-length* doesn't break rendering of long collections"
|
717 | 678 | (is (re-find #"showing page: \d+ of \d+"
|
|
0 commit comments