/
async_test.clj
31 lines (29 loc) · 1.11 KB
/
async_test.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(ns darkleaf.router.async-test
(:require [darkleaf.router :as r]
[clojure.test :refer [deftest testing is]]))
(defn testing-handler [msg handler test-req test-resp]
(testing msg
(let [respond (promise)
exception (promise)]
(handler test-req respond exception)
(is (= test-resp
(deref respond 100 nil)))
(is (not (realized? exception))))))
(deftest async-handler
(let [response {:status 200
:headers {}
:body "index resp"}
pages-controller (r/controller
(index [req resp raise]
(future
(resp response))))
pages (r/resources :pages :page pages-controller)
handler (r/make-handler pages)]
(testing-handler "found"
handler
{:uri "/pages", :request-method :get}
response)
(testing-handler "not found"
handler
{:uri "/wrong/url", :request-method :get}
{:status 404, :headers {}, :body "404 error"})))