This commit is contained in:
Mega Yu
2026-04-23 15:40:11 +08:00
parent c28b6648a3
commit b9745dbaec
7 changed files with 37 additions and 30 deletions

View File

@@ -4,6 +4,7 @@
[clojure.string :as string]
[datascript.core :as d]
[logseq.common.graph-dir :as graph-dir]
[logseq.common.path :as path]
[logseq.db.sqlite.util :as sqlite-util]))
(defn create-kvs-table!
@@ -29,9 +30,9 @@
[graphs-dir db-name]
(let [graph-dir-name (graph-dir/repo->encoded-graph-dir-name db-name)
graph-dir (node-path/join graphs-dir graph-dir-name)]
[graph-dir-name (node-path/join graph-dir "db.sqlite")]))
[graph-dir-name (path/path-join graph-dir "db.sqlite")]))
(defn get-db-backups-path
[graphs-dir db-name]
(let [graph-dir-name (graph-dir/repo->encoded-graph-dir-name db-name)]
(node-path/join graphs-dir graph-dir-name "backups")))
(path/path-join graphs-dir graph-dir-name "backups")))

View File

@@ -93,7 +93,7 @@
"cljs:release-app": "clojure -M:cljs release app db-worker db-worker-node",
"cljs:release-publishing": "clojure -M:cljs release app publishing",
"cljs:test": "clojure -M:test compile test",
"cljs:run-test": "LOGSEQ_STABLE_IDENTS=1 node static/tests.js -r '^(?!(?:logseq.db-sync.|logseq.cli.integration-test)).*' -e fix-me",
"cljs:run-test": "cross-env LOGSEQ_STABLE_IDENTS=1 node static/tests.js -r \"^(?!(?:logseq.db-sync.|logseq.cli.integration-test)).*\" -e fix-me",
"cljs:run-integration-test": "node static/tests.js -r '^(logseq.cli.integration-test).*'",
"cljs:test-no-worker": "clojure -M:test compile test-no-worker",
"cljs:run-test-no-worker": "node static/tests-no-worker.js",

View File

@@ -4,7 +4,8 @@
["os" :as os]
["path" :as node-path]
[clojure.string :as string]
[logseq.cli.command.core :as core]))
[logseq.cli.command.core :as core]
[logseq.common.path :as path]))
(def ^:private skill-dir-name "logseq-cli")
(def ^:private skill-file-name "SKILL.md")
@@ -38,10 +39,10 @@
{:ok? false
:error {:code :skill-home-dir-unavailable
:message "home directory is unavailable; cannot resolve --global install target"}}
(let [dir (node-path/join base-dir ".agents" "skills" skill-dir-name)]
(let [dir (path/path-join base-dir ".agents" "skills" skill-dir-name)]
{:ok? true
:dir dir
:file (node-path/join dir skill-file-name)}))))
:file (path/path-join dir skill-file-name)}))))
(defn resolve-skill-source-path
[candidates]

View File

@@ -160,18 +160,20 @@
(deftest db-worker-node-data-dir-permission-error
(async done
(let [data-dir (node-helper/create-tmp-dir "db-worker-readonly")
repo (str "logseq_db_perm_" (subs (str (random-uuid)) 0 8))]
(fs/chmodSync data-dir 365)
(-> (start-daemon! {:data-dir data-dir
:repo repo})
(p/then (fn [_]
(is false "expected data-dir permission error")))
(p/catch (fn [e]
(let [data (ex-data e)]
(is (= :data-dir-permission (:code data)))
(is (= (node-path/resolve data-dir) (:path data))))))
(p/finally (fn [] (done)))))))
(if (= "win32" (.-platform js/process))
(done)
(let [data-dir (node-helper/create-tmp-dir "db-worker-readonly")
repo (str "logseq_db_perm_" (subs (str (random-uuid)) 0 8))]
(fs/chmodSync data-dir 365)
(-> (start-daemon! {:data-dir data-dir
:repo repo})
(p/then (fn [_]
(is false "expected data-dir permission error")))
(p/catch (fn [e]
(let [data (ex-data e)]
(is (= :data-dir-permission (:code data)))
(is (= (node-path/resolve data-dir) (:path data))))))
(p/finally (fn [] (done))))))))
(deftest db-worker-node-creates-log-file
(async done

View File

@@ -4,7 +4,8 @@
["path" :as node-path]
[cljs.test :refer [deftest is testing]]
[clojure.string :as string]
[logseq.cli.command.skill :as skill-command]))
[logseq.cli.command.skill :as skill-command]
[logseq.common.path :as path]))
(deftest test-skill-command-entries
(let [entries skill-command/entries
@@ -142,7 +143,7 @@
(deftest test-execute-skill-install-global-prefers-home-env
(let [tmp-root (.mkdtempSync fs (node-path/join (.tmpdir os) "logseq-skill-home-"))
source-path (node-path/join tmp-root "source-skill.md")
installed-file (node-path/join tmp-root ".agents" "skills" "logseq-cli" "SKILL.md")
installed-file (path/path-join tmp-root ".agents" "skills" "logseq-cli" "SKILL.md")
previous-home (.. js/process -env -HOME)]
(try
(fs/writeFileSync source-path "# installed\ncontent" "utf8")

View File

@@ -952,7 +952,8 @@
:repo "logseq_db_demo"
:graph "demo"
:e2ee-password "pw"}
{:data-dir "/tmp"
{:base-url "http://example"
:data-dir "/tmp"
:refresh-token "refresh-token"})]
(is (= :error (:status result)))
(is (= :graph-db-not-empty (get-in result [:error :code])))

View File

@@ -31,15 +31,16 @@
(deftest ensure-data-dir-rejects-read-only-dir
(testing "rejects directories without write permission"
(let [target (node-helper/create-tmp-dir "data-dir-readonly")]
(fs/chmodSync target 365)
(try
(data-dir/ensure-data-dir! target)
(is false "expected data-dir permission error")
(catch :default e
(let [data (ex-data e)]
(is (= :data-dir-permission (:code data)))
(is (= (node-path/resolve target) (:path data)))))))))
(when-not (= "win32" (.-platform js/process))
(let [target (node-helper/create-tmp-dir "data-dir-readonly")]
(fs/chmodSync target 365)
(try
(data-dir/ensure-data-dir! target)
(is false "expected data-dir permission error")
(catch :default e
(let [data (ex-data e)]
(is (= :data-dir-permission (:code data)))
(is (= (node-path/resolve target) (:path data))))))))))
(deftest normalize-data-dir-default
(testing "defaults to ~/logseq/graphs"