fix: failing tests as part of LOG-2820

also fix lint
This commit is contained in:
Gabriel Horner
2024-01-25 11:24:19 -05:00
parent 01ed5afacc
commit 1b7bc6d053
4 changed files with 41 additions and 32 deletions

View File

@@ -11,7 +11,6 @@
[frontend.fs :as fs]
[frontend.handler.common :as common-handler]
[frontend.handler.common.page :as page-common-handler]
[frontend.handler.config :as config-handler]
[frontend.handler.editor :as editor-handler]
[frontend.handler.plugin :as plugin-handler]
[frontend.handler.notification :as notification]
@@ -248,6 +247,14 @@
(let [current-selected (util/get-selected-text)]
(cursor/move-cursor-forward input (+ 2 (count current-selected))))))
(defn add-tag [repo block-id tag & {:keys [tag-entity]}]
(let [tag-entity (or tag-entity (db/entity [:block/name (util/page-name-sanity-lc tag)]))
tx-data [[:db/add (:db/id tag-entity) :block/type "class"]
[:db/add [:block/uuid block-id] :block/tags (:db/id tag-entity)]
;; TODO: Should classes counted as refs
[:db/add [:block/uuid block-id] :block/refs (:db/id tag-entity)]]]
(db/transact! repo tx-data {:outliner-op :save-block})))
(defn on-chosen-handler
[input id _q pos format]
(let [current-pos (cursor/pos input)
@@ -292,13 +299,7 @@
:class? class?}))
tag-entity (db/entity [:block/name (util/page-name-sanity-lc tag)])]
(when class?
(let [repo (state/get-current-repo)
tag-entity (or tag-entity (db/entity [:block/name (util/page-name-sanity-lc tag)]))
tx-data [[:db/add (:db/id tag-entity) :block/type "class"]
[:db/add [:block/uuid (:block/uuid edit-block)] :block/tags (:db/id tag-entity)]
;; TODO: Should classes counted as refs
[:db/add [:block/uuid (:block/uuid edit-block)] :block/refs (:db/id tag-entity)]]]
(db/transact! repo tx-data {:outliner-op :save-block})))))))
(add-tag (state/get-current-repo) (:block/uuid edit-block) tag {:tag-entity tag-entity}))))))
(editor-handler/insert-command! id
(str "#" wrapped-tag)
format

View File

@@ -5,8 +5,7 @@
[frontend.test.helper :as test-helper]
[datascript.core :as d]
[frontend.handler.db-based.property :as db-property-handler]
[frontend.handler.page :as page-handler]
[frontend.handler.editor :as editor-handler]))
[frontend.handler.page :as page-handler]))
(def repo test-helper/test-db-name-db-version)
@@ -52,23 +51,23 @@
(is (= ["class1" "class2"] (map first (model/get-all-classes repo))))))
(deftest get-class-objects-test
(let [opts {:redirect? false :create-first-block? false :class? true}
_ (page-handler/create! "class1" opts)
class (db/entity [:block/name "class1"])
_ (editor-handler/save-block! repo fbid "Block 1 #class1")]
(is (= (model/get-class-objects repo (:db/id class))
[(:db/id (db/entity [:block/uuid fbid]))]))
(testing "namespace classes"
(page-handler/create! "class2" opts)
;; set class2's parent to class1
(let [class2 (db/entity [:block/name "class2"])]
(db/transact! [{:db/id (:db/id class2)
:block/namespace (:db/id class)}]))
(editor-handler/save-block! repo sbid "Block 2 #class2")
(let [opts {:redirect? false :create-first-block? false :class? true}
_ (page-handler/create! "class1" opts)
class (db/entity [:block/name "class1"])
_ (test-helper/save-block! repo fbid "Block 1" {:tags ["class1"]})]
(is (= (model/get-class-objects repo (:db/id class))
[(:db/id (db/entity [:block/uuid fbid]))
(:db/id (db/entity [:block/uuid sbid]))])))))
[(:db/id (db/entity [:block/uuid fbid]))]))
(testing "namespace classes"
(page-handler/create! "class2" opts)
;; set class2's parent to class1
(let [class2 (db/entity [:block/name "class2"])]
(db/transact! [{:db/id (:db/id class2)
:block/namespace (:db/id class)}]))
(test-helper/save-block! repo sbid "Block 2" {:tags ["class2"]})
(is (= (model/get-class-objects repo (:db/id class))
[(:db/id (db/entity [:block/uuid fbid]))
(:db/id (db/entity [:block/uuid sbid]))])))))
(deftest get-classes-with-property-test
(let [opts {:redirect? false :create-first-block? false :class? true}
@@ -86,8 +85,8 @@
(deftest get-tag-blocks-test
(let [opts {:redirect? false :create-first-block? false :class? true}
_ (page-handler/create! "class1" opts)
_ (editor-handler/save-block! repo fbid "Block 1 #class1")
_ (editor-handler/save-block! repo sbid "Block 2 #class1")]
_ (test-helper/save-block! repo fbid "Block 1" {:tags ["class1"]})
_ (test-helper/save-block! repo sbid "Block 2" {:tags ["class1"]})]
(is
(= (model/get-tag-blocks repo "class1")
[(:db/id (db/entity [:block/uuid fbid]))

View File

@@ -202,8 +202,8 @@
(db-property-handler/class-remove-property! repo c1id (:block/uuid (db/entity [:block/name "property-1"])))
(is (= 1 (count (:properties (:block/schema (db/entity (:db/id c1))))))))
(testing "Add classes to a block"
(editor-handler/save-block! repo fbid "Block 1 #class1 #class2 #class3")
(is (= 3 (count (:block/tags (db/entity [:block/uuid fbid]))))))
(test-helper/save-block! repo fbid "Block 1" {:tags ["class1" "class2" "class3"]})
(is (= 3 (count (:block/tags (db/entity [:block/uuid fbid]))))))
;; FIXME: @tiensonqin https://github.com/logseq/logseq/commit/575624c650b2b7e919033a79aa5d14b97507d86f
#_(testing "Remove a class from a block"
;; make sure class2 will not be deleted when removing it from the first block

View File

@@ -8,6 +8,8 @@
[logseq.db.sqlite.util :as sqlite-util]
[frontend.db :as db]
[frontend.date :as date]
[frontend.handler.editor :as editor-handler]
[frontend.handler.page :as page-handler]
[datascript.core :as d]
[logseq.graph-parser.text :as text]))
@@ -47,8 +49,8 @@
[property-lines]
(->> property-lines
(keep #(let [[k v] (string/split % #"::\s*" 2)]
(when (string/includes? % "::")
[(keyword k) (parse-property-value v)])))
(when (string/includes? % "::")
[(keyword k) (parse-property-value v)])))
(into {})))
(defn- build-block-properties
@@ -256,3 +258,10 @@ This can be called in synchronous contexts as no async fns should be invoked"
(start-test-db!))
:after #(do (state/set-current-repo! nil)
(destroy-test-db!))})
(defn save-block!
"Wrapper around editor-handler/save-block! that also adds tags"
[repo block-uuid content {:keys [tags]}]
(editor-handler/save-block! repo block-uuid content)
(doseq [tag tags]
(page-handler/add-tag repo block-uuid tag)))