From 8d0c2f988784b84f2959f29b00a5d76c3b3d3aa3 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 15 Oct 2025 17:25:46 +0800 Subject: [PATCH] fix: tests --- deps/db/src/logseq/db.cljs | 35 ++++++++++--------- deps/outliner/src/logseq/outliner/core.cljs | 2 -- src/test/frontend/db/db_based_model_test.cljs | 4 ++- src/test/frontend/test/helper.cljs | 9 +++-- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/deps/db/src/logseq/db.cljs b/deps/db/src/logseq/db.cljs index 3a5eb20e30..d7d63d1b77 100644 --- a/deps/db/src/logseq/db.cljs +++ b/deps/db/src/logseq/db.cljs @@ -70,14 +70,16 @@ data)) tx-data))) -(defn assert-no-entities +(defn entity->db-id [tx-data] (walk/prewalk (fn [f] (if (de/entity? f) - (throw (ex-info "ldb/transact! doesn't support Entity" - {:entity f - :tx-data tx-data})) + (if-let [id (:db/id f)] + id + (throw (ex-info "ldb/transact! doesn't support Entity" + {:entity f + :tx-data tx-data}))) f)) tx-data)) @@ -138,19 +140,18 @@ ([repo-or-conn tx-data] (transact! repo-or-conn tx-data nil)) ([repo-or-conn tx-data tx-meta] - (when (or (exists? js/process) - (and (exists? js/goog) js/goog.DEBUG)) - (assert-no-entities tx-data)) - (let [tx-data (map (fn [m] - (if (map? m) - (cond-> - (dissoc m :block/children :block/meta :block/top? :block/bottom? :block/anchor - :block/level :block/container :db/other-tx - :block/unordered) - (not @*transact-fn) - (dissoc :block.temp/load-status)) - m)) tx-data) - tx-data (->> (remove-temp-block-data tx-data) + (let [tx-data (->> tx-data + entity->db-id + (map (fn [m] + (if (map? m) + (cond-> + (dissoc m :block/children :block/meta :block/top? :block/bottom? :block/anchor + :block/level :block/container :db/other-tx + :block/unordered) + (not @*transact-fn) + (dissoc :block.temp/load-status)) + m))) + (remove-temp-block-data) (common-util/fast-remove-nils) (remove empty?)) delete-blocks-tx (when-not (string? repo-or-conn) diff --git a/deps/outliner/src/logseq/outliner/core.cljs b/deps/outliner/src/logseq/outliner/core.cljs index 440708e8d2..a19307abde 100644 --- a/deps/outliner/src/logseq/outliner/core.cljs +++ b/deps/outliner/src/logseq/outliner/core.cljs @@ -288,8 +288,6 @@ (dissoc :block/children :block/meta :block/unordered :block.temp/ast-title :block.temp/ast-body :block/level :block.temp/load-status :block.temp/has-children?) - common-util/remove-nils - (fix-tag-ids db {:db-graph? db-based?})) (not collapse-or-expand?) block-with-updated-at) diff --git a/src/test/frontend/db/db_based_model_test.cljs b/src/test/frontend/db/db_based_model_test.cljs index fac58f184f..daba06c502 100644 --- a/src/test/frontend/db/db_based_model_test.cljs +++ b/src/test/frontend/db/db_based_model_test.cljs @@ -33,8 +33,10 @@ ["class1" "class2"])) (set (map :block/title (model/get-all-classes repo))))))) +;; TODO: Async test (deftest ^:fix-me get-class-objects-test - (let [opts {:redirect? false} + (let [opts {:class? true + :redirect? false} _ (test-helper/create-page! "class1" opts) class (db/get-case-page "class1") _ (test-helper/save-block! repo fbid "Block 1" {:tags ["class1"]})] diff --git a/src/test/frontend/test/helper.cljs b/src/test/frontend/test/helper.cljs index e8849b8bda..32ef3c6b21 100644 --- a/src/test/frontend/test/helper.cljs +++ b/src/test/frontend/test/helper.cljs @@ -6,7 +6,7 @@ [frontend.config :as config] [frontend.db :as db] [frontend.db.conn :as conn] - [frontend.handler.db-based.page :as db-page-handler] + [frontend.handler.db-based.property :as db-property-handler] [frontend.handler.editor :as editor-handler] [frontend.handler.file-based.repo :as file-repo-handler] [frontend.handler.file-based.status :as status] @@ -189,7 +189,9 @@ This can be called in synchronous contexts as no async fns should be invoked" [;; page {:block/uuid page-uuid :block/name "test" - :block/title "Test"} + :block/title "Test" + ;; :block/tags #{:logseq.class/Page} + } ;; first block {:block/uuid first-block-uuid :block/page page-id @@ -240,7 +242,8 @@ This can be called in synchronous contexts as no async fns should be invoked" [repo block-uuid content {:keys [tags]}] (editor-handler/save-block! repo block-uuid content) (doseq [tag tags] - (db-page-handler/add-tag repo block-uuid (db/get-page tag)))) + (db-property-handler/set-block-property! block-uuid :block/tags + (db/get-page tag)))) (defn create-page! [title & {:as opts}]