| 
18 | 18 |   (is (s/valid? ::a/node (analyze ns-env 1.2)))  | 
19 | 19 |   (is (s/valid? ::a/node (analyze ns-env true)))  | 
20 | 20 |   (is (s/valid? ::a/node (analyze ns-env "foo")))  | 
21 |  | -  (is (s/valid? ::a/node (analyze ns-env [])))  | 
 | 21 | +  (let [node (analyze ns-env [])]  | 
 | 22 | +    (is (= :vector (:op node)))  | 
 | 23 | +    (is (s/valid? ::a/node node)))  | 
22 | 24 |   (is (s/valid? ::a/node (analyze ns-env [1 2 3])))  | 
23 | 25 |   (is (s/valid? ::a/node (analyze ns-env {})))  | 
24 |  | -  (is (s/valid? ::a/node (analyze ns-env {1 2 3 4})))  | 
 | 26 | +  (let [node (analyze ns-env {1 2 3 4})]  | 
 | 27 | +    (is (= :map (:op node)))  | 
 | 28 | +    (is (s/valid? ::a/node node)))  | 
25 | 29 |   (is (s/valid? ::a/node (analyze ns-env #{})))  | 
26 |  | -  (is (s/valid? ::a/node (analyze ns-env #{1 2 3}))))  | 
 | 30 | +  (let [node (analyze ns-env #{1 2 3})]  | 
 | 31 | +    (is (= :set (:op node)))  | 
 | 32 | +    (is (s/valid? ::a/node node))))  | 
27 | 33 | 
 
  | 
28 | 34 | (deftest test-if  | 
29 |  | -  (is (s/valid? ::a/node (analyze ns-env '(if true true))))  | 
 | 35 | +  (let [node (analyze ns-env '(if true true))]  | 
 | 36 | +    (is (= :if (:op node)))  | 
 | 37 | +    (is (s/valid? ::a/node node)))  | 
30 | 38 |   (is (s/valid? ::a/node (analyze ns-env '(if true true false)))))  | 
31 | 39 | 
 
  | 
32 | 40 | (deftest test-do  | 
33 |  | -  (is (s/valid? ::a/node (analyze ns-env '(do))))  | 
 | 41 | +  (let [node (analyze ns-env '(do))]  | 
 | 42 | +    (is (= :do (:op node)))  | 
 | 43 | +    (is (s/valid? ::a/node node)))  | 
34 | 44 |   (is (s/valid? ::a/node (analyze ns-env '(do 1))))  | 
35 | 45 |   (is (s/valid? ::a/node (analyze ns-env '(do 1 2 3)))))  | 
36 | 46 | 
 
  | 
37 | 47 | (deftest test-let  | 
38 |  | -  (is (s/valid? ::a/node (analyze ns-env '(let []))))  | 
 | 48 | +  (let [node (analyze ns-env '(let []))]  | 
 | 49 | +    (is (= :let (:op node)))  | 
 | 50 | +    (is (s/valid? ::a/node node)))  | 
39 | 51 |   (is (s/valid? ::a/node (analyze ns-env '(let [x 1]))))  | 
40 | 52 |   (is (s/valid? ::a/node (analyze ns-env '(let [x 1] x)))))  | 
41 | 53 | 
 
  | 
42 | 54 | (deftest test-throw  | 
43 |  | -  (is (s/valid? ::a/node (no-warn (analyze ns-env '(throw (js/Error. "foo")))))))  | 
 | 55 | +  (let [node (no-warn (analyze ns-env '(throw (js/Error. "foo"))))]  | 
 | 56 | +    (is (= :throw (:op node)))  | 
 | 57 | +    (is (s/valid? ::a/node node))))  | 
44 | 58 | 
 
  | 
45 | 59 | (deftest test-def  | 
46 |  | -  (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x)))))  | 
 | 60 | +  (let [node (no-warn (analyze ns-env '(def x)))]  | 
 | 61 | +    (is (= :def (:op node)))  | 
 | 62 | +    (is (s/valid? ::a/node node)))  | 
47 | 63 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x 1)))))  | 
48 | 64 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x (fn []))))))  | 
49 | 65 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(def x (fn [y] y)))))))  | 
50 | 66 | 
 
  | 
51 | 67 | (deftest test-fn  | 
52 |  | -  (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [])))))  | 
 | 68 | +  (let [node (no-warn (analyze ns-env '(fn [])))]  | 
 | 69 | +    (is (= :fn (:op node)))  | 
 | 70 | +    (is (s/valid? ::a/node node)))  | 
53 | 71 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [] 1)))))  | 
54 | 72 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x])))))  | 
55 | 73 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(fn [x] 1))))))  | 
 | 
60 | 78 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(defn x [y] y))))))  | 
61 | 79 | 
 
  | 
62 | 80 | (deftest test-new  | 
63 |  | -  (is (s/valid? ::a/node (no-warn (analyze ns-env '(new String)))))  | 
 | 81 | +  (let [node (no-warn (analyze ns-env '(new String)))]  | 
 | 82 | +    (is (= :new (:op node)))  | 
 | 83 | +    (is (s/valid? ::a/node node)))  | 
64 | 84 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(new js/String)))))  | 
65 | 85 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(String.)))))  | 
66 | 86 |   (is (s/valid? ::a/node (no-warn (analyze ns-env '(js/String.))))))  | 
 | 
0 commit comments