Add a test to ensure there's no regression on bug

Also introduce helper fn for common db fixture setup
This commit is contained in:
Gabriel Horner
2023-05-15 15:19:30 -04:00
committed by Tienson Qin
parent 10da24e5b7
commit decbc12c53
4 changed files with 42 additions and 17 deletions

View File

@@ -1,9 +1,14 @@
(ns frontend.handler.editor-test
(:require [frontend.handler.editor :as editor]
[clojure.test :refer [deftest is testing are]]
[frontend.db :as db]
[clojure.test :refer [deftest is testing are use-fixtures]]
[datascript.core :as d]
[frontend.test.helper :as test-helper :refer [load-test-files]]
[frontend.state :as state]
[frontend.util.cursor :as cursor]))
(use-fixtures :each test-helper/start-and-destroy-db)
(deftest extract-nearest-link-from-text-test
(testing "Page, block and tag links"
(is (= "page1"
@@ -213,3 +218,24 @@
"No page search within backticks"))
;; Reset state
(state/set-editor-action! nil))
(deftest save-block-aux!
(load-test-files [{:file/path "pages/page1.md"
:file/content "\n
- b1 #foo"}])
(testing "updating block's content changes content and preserves path-refs"
(let [conn (db/get-db test-helper/test-db false)
block (->> (d/q '[:find (pull ?b [* {:block/path-refs [:block/name]}])
:where [?b :block/content "b1 #foo"]]
@conn)
ffirst)
prev-path-refs (set (map :block/name (:block/path-refs block)))
_ (assert (= #{"page1" "foo"} prev-path-refs)
"block has expected :block/path-refs")
;; Use same options as edit-box-on-change!
_ (editor/save-block-aux! block "b12 #foo" {:skip-properties? true})
updated-block (d/pull @conn '[* {:block/path-refs [:block/name]}] [:block/uuid (:block/uuid block)])]
(is (= "b12 #foo" (:block/content updated-block)) "Content updated correctly")
(is (= prev-path-refs
(set (map :block/name (:block/path-refs updated-block))))
"Path-refs remain the same"))))