mirror of
https://github.com/penpot/penpot.git
synced 2026-09-14 16:09:01 +00:00
🐛 Fix bad error callback on nitrate checkout (#10886)
This commit is contained in:
parent
31ccfa546f
commit
370e91c3e3
@ -112,20 +112,20 @@
|
|||||||
(def nitrate-checkout-cancelled-token "nitrate-checkout-cancelled")
|
(def nitrate-checkout-cancelled-token "nitrate-checkout-cancelled")
|
||||||
|
|
||||||
(defn build-nitrate-callback-urls
|
(defn build-nitrate-callback-urls
|
||||||
"Build the success/error/cancel callback URLs from a base URL by appending
|
"Build checkout callback URLs from base URLs by appending a `subscription`
|
||||||
a `subscription` query param identifying the outcome."
|
query param identifying the outcome."
|
||||||
[base-url]
|
[base-url base-error-url]
|
||||||
(let [build (fn [token]
|
(let [build (fn [url token]
|
||||||
(dom/append-query-param base-url :subscription token))]
|
(dom/append-query-param url :subscription token))]
|
||||||
{:success-callback (build "subscribed-to-penpot-nitrate")
|
{:success-callback (build base-url "subscribed-to-penpot-nitrate")
|
||||||
:error-callback (build nitrate-checkout-error-token)
|
:error-callback (build base-error-url nitrate-checkout-error-token)
|
||||||
:finish-error-callback (build nitrate-checkout-finish-error-token)
|
:finish-error-callback (build base-error-url nitrate-checkout-finish-error-token)
|
||||||
:cancel-callback (build nitrate-checkout-cancelled-token)}))
|
:cancel-callback (build base-url nitrate-checkout-cancelled-token)}))
|
||||||
|
|
||||||
(defn go-to-buy-nitrate-license
|
(defn go-to-buy-nitrate-license
|
||||||
[subscription base-url event-origin subscription-mode subscription-start-origin]
|
[subscription base-url base-error-url event-origin subscription-mode subscription-start-origin]
|
||||||
(let [{:keys [success-callback error-callback finish-error-callback cancel-callback]}
|
(let [{:keys [success-callback error-callback finish-error-callback cancel-callback]}
|
||||||
(build-nitrate-callback-urls base-url)
|
(build-nitrate-callback-urls base-url base-error-url)
|
||||||
params {:subscription subscription
|
params {:subscription subscription
|
||||||
:callback success-callback
|
:callback success-callback
|
||||||
:error_callback error-callback
|
:error_callback error-callback
|
||||||
|
|||||||
@ -35,6 +35,7 @@
|
|||||||
(dnt/go-to-buy-nitrate-license
|
(dnt/go-to-buy-nitrate-license
|
||||||
"monthly"
|
"monthly"
|
||||||
dnt/go-to-ac-url
|
dnt/go-to-ac-url
|
||||||
|
dnt/go-to-subscription-url
|
||||||
"dashboard:plan-confirmation-modal"
|
"dashboard:plan-confirmation-modal"
|
||||||
(if (:subscription profile) "paid" "trial")
|
(if (:subscription profile) "paid" "trial")
|
||||||
subscription-start-origin)))
|
subscription-start-origin)))
|
||||||
|
|||||||
@ -807,6 +807,7 @@
|
|||||||
(dnt/go-to-buy-nitrate-license
|
(dnt/go-to-buy-nitrate-license
|
||||||
"monthly"
|
"monthly"
|
||||||
(rt/get-current-href)
|
(rt/get-current-href)
|
||||||
|
dnt/go-to-subscription-url
|
||||||
event-origin
|
event-origin
|
||||||
(if nitrate-license "paid" "trial")
|
(if nitrate-license "paid" "trial")
|
||||||
subscription-start-origin)))]
|
subscription-start-origin)))]
|
||||||
|
|||||||
@ -165,8 +165,8 @@
|
|||||||
|
|
||||||
(t/deftest build-nitrate-callback-urls-preserves-hash-query
|
(t/deftest build-nitrate-callback-urls-preserves-hash-query
|
||||||
(t/testing "appends subscription to an existing query inside the hash route"
|
(t/testing "appends subscription to an existing query inside the hash route"
|
||||||
(let [callbacks (dnt/build-nitrate-callback-urls
|
(let [base-url "https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f"
|
||||||
"https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f")]
|
callbacks (dnt/build-nitrate-callback-urls base-url base-url)]
|
||||||
(t/is (= "https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f&subscription=subscribed-to-penpot-nitrate"
|
(t/is (= "https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f&subscription=subscribed-to-penpot-nitrate"
|
||||||
(:success-callback callbacks)))
|
(:success-callback callbacks)))
|
||||||
(t/is (= "https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f&subscription=nitrate-checkout-error"
|
(t/is (= "https://localhost:3449/#/dashboard/recent?team-id=e6666530-0216-81c8-8007-f17d6087b74f&subscription=nitrate-checkout-error"
|
||||||
@ -178,25 +178,39 @@
|
|||||||
|
|
||||||
(t/deftest build-nitrate-callback-urls-adds-hash-query-when-missing
|
(t/deftest build-nitrate-callback-urls-adds-hash-query-when-missing
|
||||||
(t/testing "adds a hash query when the route has no query string yet"
|
(t/testing "adds a hash query when the route has no query string yet"
|
||||||
(let [callbacks (dnt/build-nitrate-callback-urls
|
(let [base-url "https://localhost:3449/#/settings/subscriptions"
|
||||||
"https://localhost:3449/#/settings/subscriptions")]
|
callbacks (dnt/build-nitrate-callback-urls base-url base-url)]
|
||||||
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=subscribed-to-penpot-nitrate"
|
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=subscribed-to-penpot-nitrate"
|
||||||
(:success-callback callbacks))))))
|
(:success-callback callbacks))))))
|
||||||
|
|
||||||
(t/deftest build-nitrate-callback-urls-adds-regular-query-without-hash
|
(t/deftest build-nitrate-callback-urls-adds-regular-query-without-hash
|
||||||
(t/testing "falls back to the regular URL query when there is no hash route"
|
(t/testing "falls back to the regular URL query when there is no hash route"
|
||||||
(let [callbacks (dnt/build-nitrate-callback-urls
|
(let [base-url "https://localhost:3449/admin-console/licenses/billing?foo=bar"
|
||||||
"https://localhost:3449/admin-console/licenses/billing?foo=bar")]
|
callbacks (dnt/build-nitrate-callback-urls base-url base-url)]
|
||||||
(t/is (= "https://localhost:3449/admin-console/licenses/billing?foo=bar&subscription=subscribed-to-penpot-nitrate"
|
(t/is (= "https://localhost:3449/admin-console/licenses/billing?foo=bar&subscription=subscribed-to-penpot-nitrate"
|
||||||
(:success-callback callbacks))))))
|
(:success-callback callbacks))))))
|
||||||
|
|
||||||
(t/deftest build-nitrate-callback-urls-accepts-uri-object
|
(t/deftest build-nitrate-callback-urls-accepts-uri-object
|
||||||
(t/testing "accepts a URI object as base url (used by the nitrate-form modal)"
|
(t/testing "accepts a URI object as base url (used by the nitrate-form modal)"
|
||||||
(let [callbacks (dnt/build-nitrate-callback-urls
|
(let [base-url (u/uri "https://localhost:3449/#/settings/subscriptions")
|
||||||
(u/uri "https://localhost:3449/#/settings/subscriptions"))]
|
callbacks (dnt/build-nitrate-callback-urls base-url base-url)]
|
||||||
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=nitrate-checkout-error"
|
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=nitrate-checkout-error"
|
||||||
(:error-callback callbacks))))))
|
(:error-callback callbacks))))))
|
||||||
|
|
||||||
|
(t/deftest build-nitrate-callback-urls-uses-separate-error-base
|
||||||
|
(t/testing "error callbacks use base-error-url while success/cancel use base-url"
|
||||||
|
(let [callbacks (dnt/build-nitrate-callback-urls
|
||||||
|
"https://localhost:3449/#/dashboard/recent"
|
||||||
|
"https://localhost:3449/#/settings/subscriptions")]
|
||||||
|
(t/is (= "https://localhost:3449/#/dashboard/recent?subscription=subscribed-to-penpot-nitrate"
|
||||||
|
(:success-callback callbacks)))
|
||||||
|
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=nitrate-checkout-error"
|
||||||
|
(:error-callback callbacks)))
|
||||||
|
(t/is (= "https://localhost:3449/#/settings/subscriptions?subscription=nitrate-checkout-finish-error"
|
||||||
|
(:finish-error-callback callbacks)))
|
||||||
|
(t/is (= "https://localhost:3449/#/dashboard/recent?subscription=nitrate-checkout-cancelled"
|
||||||
|
(:cancel-callback callbacks))))))
|
||||||
|
|
||||||
(t/deftest go-to-subscription-url-is-a-string
|
(t/deftest go-to-subscription-url-is-a-string
|
||||||
(t/testing "must be a string so licenses/billing?callback=... survives query encoding"
|
(t/testing "must be a string so licenses/billing?callback=... survives query encoding"
|
||||||
(t/is (string? dnt/go-to-subscription-url))
|
(t/is (string? dnt/go-to-subscription-url))
|
||||||
|
|||||||
@ -6026,8 +6026,8 @@ msgstr "Payment was not completed. Try again whenever you're ready."
|
|||||||
#: src/app/main/ui/settings/subscription.cljs:427
|
#: src/app/main/ui/settings/subscription.cljs:427
|
||||||
msgid "subscription.error.nitrate.checkout-failed"
|
msgid "subscription.error.nitrate.checkout-failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"We couldn't start the checkout. Please try again. If the problem persists, "
|
"The payment was not completed. Please try again. "
|
||||||
"contact us: support@penpot.app."
|
"If the problem persists, contact us: support@penpot.app."
|
||||||
|
|
||||||
#: src/app/main/ui/settings/subscription.cljs:407
|
#: src/app/main/ui/settings/subscription.cljs:407
|
||||||
msgid "subscription.error.nitrate.checkout-finish-failed"
|
msgid "subscription.error.nitrate.checkout-finish-failed"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user