Initial import of LogDarioSeq baseline
Establishes version control for the personal Logseq DB fork before starting the server-client architecture migration and domain features described in docs/agent-guide and the approved implementation plan. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
91
deps/db-sync/test/logseq/db_sync/common_test.cljs
vendored
Normal file
91
deps/db-sync/test/logseq/db_sync/common_test.cljs
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
(ns logseq.db-sync.common-test
|
||||
(:require [cljs.test :refer [async deftest is]]
|
||||
[logseq.db-sync.common :as common]
|
||||
[promesa.core :as p]))
|
||||
|
||||
(defn- make-stmt [calls result]
|
||||
(let [stmt (js-obj)]
|
||||
(aset stmt
|
||||
"bind"
|
||||
(fn [& args]
|
||||
(swap! calls assoc :bind-args (vec args))
|
||||
stmt))
|
||||
(aset stmt
|
||||
"all"
|
||||
(fn []
|
||||
(swap! calls update :all-count (fnil inc 0))
|
||||
result))
|
||||
stmt))
|
||||
|
||||
(deftest d1-all-falls-back-when-with-session-missing-test
|
||||
(async done
|
||||
(let [calls (atom {})
|
||||
result #js {:results #js [#js {"id" "u1"}]}
|
||||
stmt (make-stmt calls result)
|
||||
db #js {:prepare (fn [sql]
|
||||
(swap! calls assoc :prepare-sql sql)
|
||||
stmt)}]
|
||||
(-> (p/let [query-result (common/<d1-all db
|
||||
"select id from users where id = ?"
|
||||
"u1")]
|
||||
(is (= result query-result))
|
||||
(is (= "select id from users where id = ?"
|
||||
(:prepare-sql @calls)))
|
||||
(is (= ["u1"] (:bind-args @calls)))
|
||||
(is (= 1 (:all-count @calls))))
|
||||
(p/then (fn [] (done)))
|
||||
(p/catch (fn [error]
|
||||
(is false (str error))
|
||||
(done)))))))
|
||||
|
||||
(deftest d1-all-uses-with-session-mode-when-provided-test
|
||||
(async done
|
||||
(let [calls (atom {})
|
||||
result #js {:results #js [#js {"id" "u1"}]}
|
||||
stmt (make-stmt calls result)
|
||||
session #js {:prepare (fn [sql]
|
||||
(swap! calls assoc :prepare-sql sql)
|
||||
stmt)}
|
||||
db #js {:prepare (fn [_]
|
||||
(throw (js/Error. "db.prepare should not be called")))
|
||||
:withSession (fn [& args]
|
||||
(swap! calls assoc :with-session-args (vec args))
|
||||
session)}]
|
||||
(-> (p/let [query-result (common/<d1-all db
|
||||
{:session "first-primary"}
|
||||
"select id from users where id = ?"
|
||||
"u1")]
|
||||
(is (= result query-result))
|
||||
(is (= ["first-primary"] (:with-session-args @calls)))
|
||||
(is (= "select id from users where id = ?"
|
||||
(:prepare-sql @calls)))
|
||||
(is (= ["u1"] (:bind-args @calls)))
|
||||
(is (= 1 (:all-count @calls))))
|
||||
(p/then (fn [] (done)))
|
||||
(p/catch (fn [error]
|
||||
(is false (str error))
|
||||
(done)))))))
|
||||
|
||||
(deftest d1-all-uses-default-with-session-when-no-mode-test
|
||||
(async done
|
||||
(let [calls (atom {})
|
||||
result #js {:results #js []}
|
||||
stmt (make-stmt calls result)
|
||||
session #js {:prepare (fn [sql]
|
||||
(swap! calls assoc :prepare-sql sql)
|
||||
stmt)}
|
||||
db #js {:prepare (fn [_]
|
||||
(throw (js/Error. "db.prepare should not be called")))
|
||||
:withSession (fn [& args]
|
||||
(swap! calls assoc :with-session-args (vec args))
|
||||
session)}]
|
||||
(-> (p/let [query-result (common/<d1-all db "select 1")]
|
||||
(is (= result query-result))
|
||||
(is (= [] (:with-session-args @calls)))
|
||||
(is (= "select 1" (:prepare-sql @calls)))
|
||||
(is (nil? (:bind-args @calls)))
|
||||
(is (= 1 (:all-count @calls))))
|
||||
(p/then (fn [] (done)))
|
||||
(p/catch (fn [error]
|
||||
(is false (str error))
|
||||
(done)))))))
|
||||
Reference in New Issue
Block a user