From 9fe760c278d8a1a6cdd891ebdfa0a0c65e28effc Mon Sep 17 00:00:00 2001 From: David Nolen Date: Wed, 29 Jun 2022 18:41:22 -0400 Subject: [PATCH 1/2] * add deps.edn test CLJS aliases * add build directory with cljs build configs - simple & advanced node builds --- build/node_adv.edn | 5 +++++ build/node_simple.edn | 7 +++++++ deps.edn | 4 +++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 build/node_adv.edn create mode 100644 build/node_simple.edn diff --git a/build/node_adv.edn b/build/node_adv.edn new file mode 100644 index 0000000..f2bfe63 --- /dev/null +++ b/build/node_adv.edn @@ -0,0 +1,5 @@ +{:main cljs.core.async.test-runner + :output-dir "out-adv-node" + :output-to "out-adv-node/tests.js" + :optimizations :advanced + :target :nodejs} diff --git a/build/node_simple.edn b/build/node_simple.edn new file mode 100644 index 0000000..f5a5778 --- /dev/null +++ b/build/node_simple.edn @@ -0,0 +1,7 @@ +{:main cljs.core.async.test-runner + :output-dir "out-simp-node" + :output-to "out-simp-node/tests.js" + :optimizations :simple + :static-fns true + :pretty-print true + :target :nodejs} diff --git a/deps.edn b/deps.edn index 7f1d645..ba6eb92 100644 --- a/deps.edn +++ b/deps.edn @@ -3,7 +3,9 @@ {org.clojure/tools.analyzer.jvm {:mvn/version "1.2.2"}} :aliases {:cljs-test {:extra-deps {org.clojure/clojurescript {:mvn/version "1.10.597"}} - :extra-paths ["src/test/cljs"]} + :extra-paths ["src/main/clojure/cljs" "src/test/cljs"]} + :adv {:main-opts ["-m" "cljs.main" "-v" "-co" "build/node_adv.edn" "-c"]} + :simp {:main-opts ["-m" "cljs.main" "-v" "-co" "build/node_simple.edn" "-c"]} ;; For compile test purposes ;; clj -T:build compile From 98ad06e6f01b3361dc0f2923057ee0d71ab98eec Mon Sep 17 00:00:00 2001 From: David Nolen Date: Wed, 29 Jun 2022 19:06:34 -0400 Subject: [PATCH 2/2] * add test.yaml * add externs for process.on * update runner to catch the expected exceptions so tests complete --- .github/workflows/test.yaml | 22 +++++++++++++++++++ build/node_adv.edn | 1 + build/test_externs.js | 1 + .../cljs/cljs/core/async/test_runner.cljs | 9 +++++++- 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yaml create mode 100644 build/test_externs.js diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..a483c17 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,22 @@ +name: Tests +on: [push] + +jobs: + # Runtime Tests + runtime-test: + name: Runtime Tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: DeLaGuardo/setup-clojure@3.1 + with: + tools-deps: '1.10.1.763' + + - name: Build tests + run: clojure -M:cljs-test:adv + + - name: Run tests + run: | + node out-adv-node/tests.js | tee test-out.txt + grep -qxF '0 failures, 0 errors.' test-out.txt diff --git a/build/node_adv.edn b/build/node_adv.edn index f2bfe63..391a017 100644 --- a/build/node_adv.edn +++ b/build/node_adv.edn @@ -1,5 +1,6 @@ {:main cljs.core.async.test-runner :output-dir "out-adv-node" :output-to "out-adv-node/tests.js" + :externs ["build/test_externs.js"] :optimizations :advanced :target :nodejs} diff --git a/build/test_externs.js b/build/test_externs.js new file mode 100644 index 0000000..5742a08 --- /dev/null +++ b/build/test_externs.js @@ -0,0 +1 @@ +process.on = function(){}; diff --git a/src/test/cljs/cljs/core/async/test_runner.cljs b/src/test/cljs/cljs/core/async/test_runner.cljs index 0d9886b..1639efd 100644 --- a/src/test/cljs/cljs/core/async/test_runner.cljs +++ b/src/test/cljs/cljs/core/async/test_runner.cljs @@ -13,7 +13,14 @@ [cljs.core.async.timers-test] [cljs.core.async.interop-tests] [cljs.core.async.tests] - [cljs.core.async.runner-tests])) + [cljs.core.async.runner-tests] + [clojure.string :as string])) + +(when (exists? js/process) + (.on js/process "uncaughtException" + (fn [e] + (when-not (= "Assert failed: This exception is expected\nfalse" (.-message e)) + (println "TESTS FAILED TO COMPLETE:" (.-message e)))))) (run-tests 'cljs.core.async.runner-tests