From ad8384022ce5be46c90d4c2472a69361024e503e Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 30 Oct 2018 23:23:13 +0900 Subject: [PATCH] Add tests for the slash-redirect :add case --- test/cljc/reitit/ring_test.cljc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/cljc/reitit/ring_test.cljc b/test/cljc/reitit/ring_test.cljc index 636d5028..86e7d27d 100644 --- a/test/cljc/reitit/ring_test.cljc +++ b/test/cljc/reitit/ring_test.cljc @@ -239,6 +239,31 @@ (is (= response (app {:request-method :get, :uri "/any"}))) (is (= response (app {:request-method :options, :uri "/any"})))))))) +(deftest trailing-slash-handler-test + (testing "using :method :add" + (let [ok {:status 200 :body "ok"} + app (ring/ring-handler + (ring/router + [["/slash-less" {:get (constantly ok), + :post (constantly ok)}] + ["/with-slash/" {:get (constantly ok), + :post (constantly ok)}]]) + (ring/redirect-trailing-slash-handler {:method :add}))] + + (testing "exact matches work" + (is (= ok (app {:request-method :get, :uri "/slash-less"}))) + (is (= ok (app {:request-method :post, :uri "/slash-less"}))) + (is (= ok (app {:request-method :get, :uri "/with-slash/"}))) + (is (= ok (app {:request-method :post, :uri "/with-slash/"})))) + + (testing "adds slashes" + (is (= 301 (:status (app {:request-method :get, :uri "/with-slash"})))) + (is (= 308 (:status (app {:request-method :post, :uri "/with-slash"}))))) + + (testing "does not strip slashes" + (is (= nil (app {:request-method :get, :uri "/slash-less/"}))) + (is (= nil (app {:request-method :post, :uri "/slash-less/"}))))))) + (deftest async-ring-test (let [promise #(let [value (atom ::nil)] (fn