diff --git a/src/main/frontend/fs/capacitor_fs.cljs b/src/main/frontend/fs/capacitor_fs.cljs index a874074cb4..ac777af6cf 100644 --- a/src/main/frontend/fs/capacitor_fs.cljs +++ b/src/main/frontend/fs/capacitor_fs.cljs @@ -158,7 +158,7 @@ (error-handler error) (log/error :write-file-failed error))))))))) -(defn- get-file-path [dir path] +(defn get-file-path [dir path] (let [[dir path'] (map #(some-> % (string/replace "///" "/") js/decodeURI) diff --git a/src/test/frontend/fs/capacitor_fs_test.cljs b/src/test/frontend/fs/capacitor_fs_test.cljs new file mode 100644 index 0000000000..0302be9ba9 --- /dev/null +++ b/src/test/frontend/fs/capacitor_fs_test.cljs @@ -0,0 +1,24 @@ +(ns frontend.fs.capacitor-fs-test + (:require [frontend.fs.capacitor-fs :as capacitor-fs] + [clojure.test :refer [deftest is]])) + +(deftest get-file-path + (let [dir "file:///private/var/mobile/Library/Mobile%20Documents/iCloud~com~logseq~logseq/Documents/" + url-decoded-dir "file:/private/var/mobile/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/"] + (is (= (str url-decoded-dir "pages/pages-metadata.edn") + (capacitor-fs/get-file-path + dir + "file:///private/var/mobile/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/pages/pages-metadata.edn")) + "full path returns as url decoded full path") + + (is (= (str url-decoded-dir "journals/2002_01_28.md") + (capacitor-fs/get-file-path + dir + "/journals/2002_01_28.md")) + "relative path returns as url decoded full path") + + (is (= dir + (capacitor-fs/get-file-path + dir + nil)) + "nil path returns url encoded dir")))