Skip to content

Commit 0666699

Browse files
author
dnolen
committed
eval tests
1 parent 836609c commit 0666699

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

src/test/cljs/self_host/test.cljs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,34 @@
1313
(defn inc! [r]
1414
(swap! r inc))
1515

16+
(set! *target* "nodejs")
17+
18+
(def vm (js/require "vm"))
19+
(def fs (js/require "fs"))
1620
(def st (cljs/empty-state))
1721

22+
(defn node-eval [{:keys [name source]}]
23+
(.runInThisContext vm source (str (munge name) ".js")))
24+
25+
(def libs
26+
{'bootstrap-test.core :cljs
27+
'bootstrap-test.macros :clj
28+
'bootstrap-test.helper :clj})
29+
30+
(defn node-load [{:keys [name macros]} cb]
31+
(if (contains? libs name)
32+
(let [path (str "src/test/cljs/" (cljs/ns->relpath name)
33+
"." (cljs.core/name (get libs name)))]
34+
(.readFile fs path "utf-8"
35+
(fn [err src]
36+
(cb (if-not err
37+
{:lang :clj :source src}
38+
(.error js/console err))))))
39+
(cb nil)))
40+
41+
(defn elide-env [env ast opts]
42+
(dissoc ast :env))
43+
1844
(deftest test-compile-str
1945
(async done
2046
(let [l (latch 3 done)]
@@ -34,4 +60,30 @@
3460
(fn [{:keys [error value]}]
3561
(is (nil? error))
3662
(is (= value "(cljs.core.truth_(cljs.core.first)?1:2)"))
63+
(inc! l))))))
64+
65+
(deftest test-eval-str
66+
(async done
67+
(let [l (latch 3 done)]
68+
(cljs/eval-str st "(+ 1 1)" nil
69+
{:eval node-eval}
70+
(fn [{:keys [error value]}]
71+
(is (nil? error))
72+
(is (== value 2))
73+
(inc! l)))
74+
(cljs/eval-str st "(def x 1)" nil
75+
{:eval node-eval
76+
:context :expr
77+
:def-emits-var true}
78+
(fn [{:keys [error value]}]
79+
(is (nil? error))
80+
(is (var? value))
81+
(inc! l)))
82+
(cljs/eval-str st "(fn [])" nil
83+
{:eval node-eval
84+
:context :expr
85+
:def-emits-var true}
86+
(fn [{:keys [error value]}]
87+
(is (nil? error))
88+
(is (fn? value))
3789
(inc! l))))))

0 commit comments

Comments
 (0)