diff --git a/frontend/src/app/main/data/nitrate.cljs b/frontend/src/app/main/data/nitrate.cljs index 62f045ea63..cf310693d5 100644 --- a/frontend/src/app/main/data/nitrate.cljs +++ b/frontend/src/app/main/data/nitrate.cljs @@ -93,7 +93,7 @@ :profile-id profile-id :team-permissions team-permissions})) -(def go-to-subscription-url (u/join cf/public-uri "#/settings/subscriptions")) +(def go-to-subscription-url (dm/str (u/join cf/public-uri "#/settings/subscriptions"))) (def go-to-ac-url (build-admin-console-url "")) diff --git a/frontend/test/frontend_tests/data/nitrate_test.cljs b/frontend/test/frontend_tests/data/nitrate_test.cljs index 744f8f1b16..ec0a2ba5fe 100644 --- a/frontend/test/frontend_tests/data/nitrate_test.cljs +++ b/frontend/test/frontend_tests/data/nitrate_test.cljs @@ -64,3 +64,19 @@ (u/uri "https://localhost:3449/#/settings/subscriptions"))] (t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=nitrate-checkout-error" (:error-callback callbacks)))))) + +(t/deftest go-to-subscription-url-is-a-string + (t/testing "must be a string so licenses/billing?callback=... survives query encoding" + (t/is (string? dnt/go-to-subscription-url)) + (t/is (not (u/uri? dnt/go-to-subscription-url))))) + +(t/deftest build-admin-console-billing-url-encodes-string-callback + (t/testing "billing callback query param round-trips as a real URL string" + (let [public-uri (u/uri "https://localhost:3449/") + callback "https://localhost:3449/#/settings/subscriptions" + href (dnt/build-admin-console-url + public-uri + "licenses/billing" + {:callback callback}) + parsed (-> href u/uri :query u/query-string->map :callback)] + (t/is (= callback parsed)))))