Add tests for missing sieppari asyncs

This commit is contained in:
Tommi Reiman 2020-05-16 14:06:45 +03:00
parent 8f423b1354
commit 26dcbef5d1

View file

@ -6,7 +6,8 @@
[reitit.interceptor.sieppari :as sieppari]
[reitit.http :as http]
[reitit.ring :as ring]
[reitit.core :as r])
[reitit.core :as r]
[clojure.core.async :as a])
(:import (clojure.lang ExceptionInfo)))
(defn interceptor [name]
@ -281,6 +282,37 @@
(is (= 406 (:status (respond))))
(is (= ::nil (raise))))))))))
(deftest core-async-test
(testing "works if registered"
(require '[sieppari.async.core-async])
(let [response {:status 200, :body "ok"}
app (http/ring-handler
(http/router
["/ping" {:get {:interceptors [{:enter #(a/go %)}]
:handler (fn [_] (a/go response))}}])
(ring/create-default-handler)
{:executor sieppari/executor})]
(let [respond (promise)]
(app {:request-method :get, :uri "/ping"} respond ::irrelevant)
(is (= response @respond))))))
(defrecord MyAsyncContext [])
(deftest unknown-async-test
(testing "works if registered"
(require '[sieppari.async.core-async])
(let [response {:status 200, :body "ok"}
app (http/ring-handler
(http/router
["/ping" {:get {:interceptors [{:enter map->MyAsyncContext}]
:handler (fn [_] response)}}])
(ring/create-default-handler)
{:executor sieppari/executor})]
(let [raise (promise)]
(app {:request-method :get, :uri "/ping"} ::irrelevant raise)
(let [response' @raise]
(is (instance? ExceptionInfo response')))))))
(deftest interceptor-transform-test
(let [interceptor (fn [name] {:name name
:enter (fn [ctx]