pods/test-resources/test_program.clj
2020-05-20 11:53:10 +02:00

38 lines
1.2 KiB
Clojure

(require '[babashka.pods :as pods])
(prn (pods/load-pod ["clojure" "-A:test-pod"])) ;; should return nil
(require '[pod.test-pod :as pod])
(def stream-results (atom []))
(pods/invoke "pod.test-pod" 'pod.test-pod/range-stream [1 10]
{:on-success (fn [{:keys [:value]}]
(swap! stream-results conj value))})
(while (< (count @stream-results) 9))
(def ex-result
(try (pod.test-pod/error 1 2 3)
(catch clojure.lang.ExceptionInfo e
(str (ex-message e) " / " (ex-data e)))))
(pod.test-pod/print "hello" "print" "this" "debugging" "message")
(pod.test-pod/print-err "hello" "print" "this" "error")
(pod/do-twice (prn :foo))
(def callback-result (promise))
(pods/invoke "pod.test-pod" 'pod.test-pod/add-sync [1 2]
{:on-success (fn [{:keys [:value :done]}]
(when done (deliver callback-result value)))})
(def error-result (promise))
(pods/invoke "pod.test-pod" 'pod.test-pod/add-sync ["1" 2]
{:on-error (fn [m]
(deliver error-result m))})
[(pod/assoc {:a 1} :b 2)
(pod.test-pod/add-sync 1 2 3)
@stream-results
ex-result
(pod.test-pod/return-nil)
@callback-result
(:ex-message @error-result)
(:ex-data @error-result)]