From 58f9871747296e0267dd795ae0cd1d4047a90b29 Mon Sep 17 00:00:00 2001 From: Juho Teperi Date: Wed, 23 Sep 2020 14:08:30 +0300 Subject: [PATCH] Test rfe start! --- test/cljs/reitit/frontend/easy_test.cljs | 28 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/test/cljs/reitit/frontend/easy_test.cljs b/test/cljs/reitit/frontend/easy_test.cljs index f97652a2..7def2701 100644 --- a/test/cljs/reitit/frontend/easy_test.cljs +++ b/test/cljs/reitit/frontend/easy_test.cljs @@ -12,6 +12,8 @@ ["foo" ::foo] ["bar/:id" ::bar]])) +;; TODO: Only tests fragment history, also test HTML5? + (deftest easy-history-routing-test (when browser (gevents/removeAll js/window goog.events.EventType.POPSTATE) @@ -24,7 +26,8 @@ (fn on-navigate [match history] (let [url (rfh/-get-path history)] (case (swap! n inc) - 1 (do (is (= "/" url) + 1 (do (is (some? (:popstate-listener history))) + (is (= "/" url) "start at root") (rfe/push-state ::foo)) 2 (do (is (= "/foo" url) @@ -41,7 +44,24 @@ (.back js/window.history)) 6 (do (is (= "/" url) "go back after replace state") - (rfh/stop! @rfe/history) - (done)) - (is false "extra event")))) + + ;; Reset to ensure old event listeners aren't called + (rfe/start! router + (fn on-navigate [match history] + (let [url (rfh/-get-path history)] + (case (swap! n inc) + 7 (do (is (= "/" url) + "start at root") + (rfe/push-state ::foo)) + 8 (do (is (= "/foo" url) + "push-state") + (rfh/stop! @rfe/history) + (done)) + (do + (is false (str "extra event 2" {:n @n, :url url})) + (done))))) + {:use-fragment true})) + (do + (is false (str "extra event 1" {:n @n, :url url})) + (done))))) {:use-fragment true})))))