mirror of
https://github.com/penpot/penpot.git
synced 2026-09-14 16:09:01 +00:00
Keep subpath in the link-preview human redirect, fail fast on absolute join-uri segments, clarify the valueless-param behavior, and detect Applebot, Googlebot, Bing and DuckDuckGo crawlers. AI-assisted-by: muse-spark-1.3-contributor
41 lines
1.9 KiB
Clojure
41 lines
1.9 KiB
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; Copyright (c) KALEIDOS INC Sucursal en España SL
|
|
|
|
(ns backend-tests.config-test
|
|
(:require
|
|
[app.config :as cf]
|
|
[clojure.test :as t]))
|
|
|
|
(t/deftest get-public-uri-normalizes-base
|
|
(t/testing "trailing slash is ensured with and without subpath"
|
|
(doseq [[base expected] [["http://localhost:3449" "http://localhost:3449/"]
|
|
["http://localhost:3449/" "http://localhost:3449/"]
|
|
["https://example.com/penpot" "https://example.com/penpot/"]
|
|
["https://example.com/penpot/" "https://example.com/penpot/"]]]
|
|
(t/testing (str "base " base)
|
|
(with-redefs [cf/config (assoc cf/config :public-uri base)]
|
|
(t/is (= expected (cf/get-public-uri))))))))
|
|
|
|
(t/deftest get-public-uri-preserves-subpath
|
|
(t/testing "joined segments keep the subpath"
|
|
(with-redefs [cf/config (assoc cf/config :public-uri "https://example.com/penpot")]
|
|
(t/is (= "https://example.com/penpot/assets/by-id/123"
|
|
(cf/get-public-uri "assets/by-id/123")))
|
|
(t/is (= "https://example.com/penpot/api/main/doc"
|
|
(cf/get-public-uri "api/main/doc"))))))
|
|
|
|
(t/deftest join-uri-joins-arbitrary-base
|
|
(t/testing "segments join onto any base with trailing slash normalization"
|
|
(t/is (= "https://nitrate.example.com/api/teams/123"
|
|
(cf/join-uri "https://nitrate.example.com" "api/teams/123")))
|
|
(t/is (= "https://nitrate.example.com/api/teams/123"
|
|
(cf/join-uri "https://nitrate.example.com/" "api/teams/123")))))
|
|
|
|
(t/deftest join-uri-rejects-leading-slash
|
|
(t/testing "a leading slash would drop the subpath, so it fails fast"
|
|
(t/is (thrown? AssertionError
|
|
(cf/join-uri "https://example.com/penpot" "/assets/by-id/123")))))
|