mirror of
https://github.com/metosin/reitit.git
synced 2026-02-19 09:15:54 +00:00
Comments about differences to reitit.impl
This commit is contained in:
parent
dad8f530a6
commit
e2217887e3
2 changed files with 20 additions and 3 deletions
|
|
@ -30,6 +30,9 @@
|
||||||
new-query (if (fn? new-query-or-update-fn)
|
new-query (if (fn? new-query-or-update-fn)
|
||||||
(new-query-or-update-fn (query-params uri))
|
(new-query-or-update-fn (query-params uri))
|
||||||
new-query-or-update-fn)]
|
new-query-or-update-fn)]
|
||||||
|
;; NOTE: Differences to reitit.impl/query-string?
|
||||||
|
;; reitit fn adds "=" even if value is empty string
|
||||||
|
;; reitit encodes " " as "+" while browser and goog.Uri encode as "%20"
|
||||||
(.setQueryData uri (goog.Uri.QueryData/createFromMap (clj->js new-query)))
|
(.setQueryData uri (goog.Uri.QueryData/createFromMap (clj->js new-query)))
|
||||||
(.toString uri)))
|
(.toString uri)))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,8 @@
|
||||||
[schema.core :as s]
|
[schema.core :as s]
|
||||||
[reitit.coercion.schema :as rcs]
|
[reitit.coercion.schema :as rcs]
|
||||||
[reitit.coercion.malli :as rcm]
|
[reitit.coercion.malli :as rcm]
|
||||||
[reitit.frontend.test-utils :refer [capture-console]]))
|
[reitit.frontend.test-utils :refer [capture-console]]
|
||||||
|
[reitit.impl :as impl]))
|
||||||
|
|
||||||
(deftest query-params-test
|
(deftest query-params-test
|
||||||
(is (= {:foo "1"}
|
(is (= {:foo "1"}
|
||||||
|
|
@ -244,7 +245,17 @@
|
||||||
(deftest set-query-params-test
|
(deftest set-query-params-test
|
||||||
(is (= "foo?bar=1"
|
(is (= "foo?bar=1"
|
||||||
(rf/set-query-params "foo" {:bar 1})
|
(rf/set-query-params "foo" {:bar 1})
|
||||||
(rf/set-query-params "foo" #(assoc % :bar 1))))
|
(rf/set-query-params "foo" #(assoc % :bar 1))
|
||||||
|
;; Also compare to reitit.impl version which is used by match->path (and history fns)
|
||||||
|
(str "foo?" (impl/query-string {:bar 1}))))
|
||||||
|
|
||||||
|
(testing "Encoding"
|
||||||
|
(is (= "foo?bar=foo%20bar"
|
||||||
|
(rf/set-query-params "foo" {:bar "foo bar"})
|
||||||
|
(rf/set-query-params "foo" #(assoc % :bar "foo bar"))
|
||||||
|
;; FIXME: Reitit.impl encodes space as "+"
|
||||||
|
; (str "foo?" (impl/query-string {:bar "foo bar"}))
|
||||||
|
)))
|
||||||
|
|
||||||
(testing "Keep fragment"
|
(testing "Keep fragment"
|
||||||
(is (= "foo?bar=1&zzz=2#aaa"
|
(is (= "foo?bar=1&zzz=2#aaa"
|
||||||
|
|
@ -260,7 +271,10 @@
|
||||||
(rf/set-query-params "foo?asd=1&bar" #(dissoc % :asd))))
|
(rf/set-query-params "foo?asd=1&bar" #(dissoc % :asd))))
|
||||||
|
|
||||||
(is (= "foo?bar"
|
(is (= "foo?bar"
|
||||||
(rf/set-query-params "foo" #(assoc % :bar ""))))
|
(rf/set-query-params "foo" #(assoc % :bar ""))
|
||||||
|
;; FIXME: Reitit.impl adds "=" for empty string values
|
||||||
|
; (str "foo?" (impl/query-string {:bar ""}))
|
||||||
|
))
|
||||||
|
|
||||||
(is (= "foo"
|
(is (= "foo"
|
||||||
(rf/set-query-params "foo?asd=1" #(dissoc % :asd))))
|
(rf/set-query-params "foo?asd=1" #(dissoc % :asd))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue