diff --git a/deps/db/src/logseq/db.cljs b/deps/db/src/logseq/db.cljs index bd1ce14382..01ce48aecd 100644 --- a/deps/db/src/logseq/db.cljs +++ b/deps/db/src/logseq/db.cljs @@ -678,6 +678,12 @@ db v)) +(defn- add-entity + [acc class-id entity] + (if class-id + (update acc class-id (fnil conj #{}) entity) + acc)) + (defn get-bidirectional-properties "Given a target entity id, returns a seq of maps with: * :class - class entity @@ -685,12 +691,7 @@ * :entities - node entities that reference the target via ref properties" [db target-id] (when (and db target-id (d/entity db target-id)) - (let [add-entity - (fn [acc class-id entity] - (if class-id - (update acc class-id (fnil conj #{}) entity) - acc)) - *attr->bidirectional? (volatile! {}) + (let [*attr->bidirectional? (volatile! {}) bidirectional-property-attr-cached? (fn [attr] (let [cache @*attr->bidirectional?] diff --git a/deps/db/src/logseq/db/test/helper.cljs b/deps/db/src/logseq/db/test/helper.cljs index aa6b87dec5..158260b2fe 100644 --- a/deps/db/src/logseq/db/test/helper.cljs +++ b/deps/db/src/logseq/db/test/helper.cljs @@ -92,3 +92,14 @@ _ (when (::sqlite-export/graph-files export-map) (d/transact! conn (::sqlite-export/graph-files export-map)))] conn)) + +(defmacro silence-stderr + "Silence stderr as successful tests should print long stderr messages" + [& body] + `(let [orig-write# (.-write js/process.stderr)] + (set! (.-write js/process.stderr) + (fn [& _] true)) + (try + ~@body + (finally + (set! (.-write js/process.stderr) orig-write#))))) diff --git a/deps/db/test/logseq/db_test.cljs b/deps/db/test/logseq/db_test.cljs index 0287e66df0..dae945bd16 100644 --- a/deps/db/test/logseq/db_test.cljs +++ b/deps/db/test/logseq/db_test.cljs @@ -100,8 +100,10 @@ (let [conn (db-test/create-conn)] (testing "#Task shouldn't be converted to property" (is (thrown? js/Error - (with-out-str (ldb/transact! conn [{:db/ident :logseq.class/Task - :block/tags :logseq.class/Property}]))))) + (with-out-str + (db-test/silence-stderr + (ldb/transact! conn [{:db/ident :logseq.class/Task + :block/tags :logseq.class/Property}])))))) (ldb/transact-with-temp-conn! conn {}