transform-test

This commit is contained in:
Tommi Reiman 2018-08-21 22:01:14 +03:00
parent 3e659a2b8b
commit 4d797d0b5d

View file

@ -234,36 +234,37 @@
(is (= 406 (:status (respond)))) (is (= 406 (:status (respond))))
(is (= ::nil (raise)))))))))) (is (= ::nil (raise))))))))))
#_(deftest middleware-transform-test (deftest interceptor-transform-test
(let [middleware (fn [name] {:name name (let [interceptor (fn [name] {:name name
:wrap (fn [handler] :enter (fn [ctx]
(fn [request] (update-in ctx [:request ::i] (fnil conj []) name))})
(handler (update request ::mw (fnil conj []) name))))}) handler (fn [{:keys [::i]}] {:status 200 :body (conj i :ok)})
handler (fn [{:keys [::mw]}] {:status 200 :body (conj mw :ok)}) request {:uri "/api/avaruus" :request-method :get}
request {:uri "/api/avaruus" :request-method :get} create (fn [options]
create (fn [options] (http/ring-handler
(http/ring-handler (http/router
(http/router ["/api" {:interceptors [(interceptor :olipa)]}
["/api" {:interceptors [(middleware :olipa)]} ["/avaruus" {:interceptors [(interceptor :kerran)]
["/avaruus" {:interceptors [(middleware :kerran)] :get {:handler handler
:get {:handler handler :interceptors [(interceptor :avaruus)]}}]]
:interceptors [(middleware :avaruus)]}}]] options)
options)))] nil
{:executor sieppari/executor}))]
(testing "by default, all middleware are applied in order" (testing "by default, all middleware are applied in order"
(let [app (create nil)] (let [app (create nil)]
(is (= {:status 200, :body [:olipa :kerran :avaruus :ok]} (is (= {:status 200, :body [:olipa :kerran :avaruus :ok]}
(app request))))) (app request)))))
(testing "middleware can be re-ordered" (testing "middleware can be re-ordered"
(let [app (create {::interceptor/transform (partial sort-by :name)})] (let [app (create {::interceptor/transform (partial sort-by :name)})]
(is (= {:status 200, :body [:avaruus :kerran :olipa :ok]} (is (= {:status 200, :body [:avaruus :kerran :olipa :ok]}
(app request))))) (app request)))))
(testing "adding debug middleware between middleware" (testing "adding debug middleware between middleware"
(let [app (create {::interceptor/transform #(interleave % (repeat (middleware "debug")))})] (let [app (create {::interceptor/transform #(interleave % (repeat (interceptor "debug")))})]
(is (= {:status 200, :body [:olipa "debug" :kerran "debug" :avaruus "debug" :ok]} (is (= {:status 200, :body [:olipa "debug" :kerran "debug" :avaruus "debug" :ok]}
(app request))))))) (app request)))))))
#?(:clj #?(:clj
(deftest resource-handler-test (deftest resource-handler-test