|
|
@@ -110,30 +110,32 @@
|
|
|
{:property-pages/enabled? true})))
|
|
|
"Only editable linkable built-in properties have page-refs in property values")))
|
|
|
|
|
|
+(defn find-block-for-content
|
|
|
+ [db content]
|
|
|
+ (->> (d/q '[:find (pull ?b [* {:block/refs [:block/uuid]}])
|
|
|
+ :in $ ?content
|
|
|
+ :where [?b :block/content ?content]]
|
|
|
+ db
|
|
|
+ content)
|
|
|
+ (map first)
|
|
|
+ first))
|
|
|
+
|
|
|
(deftest refs-from-block-refs
|
|
|
(let [conn (ldb/start-conn)
|
|
|
id "63f528da-284a-45d1-ac9c-5d6a7435f6b4"
|
|
|
block (str "A block\nid:: " id)
|
|
|
block-ref-via-content (str "Link to " (block-ref/->block-ref id))
|
|
|
block-ref-via-block-properties (str "B block\nref:: " (block-ref/->block-ref id))
|
|
|
- body (str "- " block "\n- " block-ref-via-content "\n- " block-ref-via-block-properties)
|
|
|
- find-block-for-content (fn [content]
|
|
|
- (->> (d/q '[:find (pull ?b [:block/content {:block/refs [:block/uuid]}])
|
|
|
- :in $ ?content
|
|
|
- :where [?b :block/content ?content]]
|
|
|
- @conn
|
|
|
- content)
|
|
|
- (map first)
|
|
|
- first))]
|
|
|
+ body (str "- " block "\n- " block-ref-via-content "\n- " block-ref-via-block-properties)]
|
|
|
(graph-parser/parse-file conn "foo.md" body {})
|
|
|
|
|
|
(testing "Block refs in blocks"
|
|
|
(is (= [{:block/uuid (uuid id)}]
|
|
|
- (:block/refs (find-block-for-content block-ref-via-content)))
|
|
|
+ (:block/refs (find-block-for-content @conn block-ref-via-content)))
|
|
|
"Block that links to a block via paragraph content has correct block ref")
|
|
|
|
|
|
(is (contains?
|
|
|
- (set (:block/refs (find-block-for-content block-ref-via-block-properties)))
|
|
|
+ (set (:block/refs (find-block-for-content @conn block-ref-via-block-properties)))
|
|
|
{:block/uuid (uuid id)})
|
|
|
"Block that links to a block via block properties has correct block ref"))
|
|
|
|
|
|
@@ -141,6 +143,21 @@
|
|
|
(let [block-ref-via-page-properties (str "page-ref:: " (block-ref/->block-ref id))]
|
|
|
(graph-parser/parse-file conn "foo2.md" block-ref-via-page-properties {})
|
|
|
(is (contains?
|
|
|
- (set (:block/refs (find-block-for-content block-ref-via-page-properties)))
|
|
|
+ (set (:block/refs (find-block-for-content @conn block-ref-via-page-properties)))
|
|
|
{:block/uuid (uuid id)})
|
|
|
"Block that links to a block via page properties has correct block ref")))))
|
|
|
+
|
|
|
+(deftest timestamp-blocks
|
|
|
+ (let [conn (ldb/start-conn)
|
|
|
+ deadline-block "do something\nDEADLINE: <2023-02-21 Tue>"
|
|
|
+ scheduled-block "do something else\nSCHEDULED: <2023-02-20 Mon>"
|
|
|
+ body (str "- " deadline-block "\n- " scheduled-block)]
|
|
|
+ (graph-parser/parse-file conn "foo.md" body {})
|
|
|
+
|
|
|
+ (is (= 20230220
|
|
|
+ (:block/scheduled (find-block-for-content @conn scheduled-block)))
|
|
|
+ "Scheduled block has correct block attribute and value")
|
|
|
+
|
|
|
+ (is (= 20230221
|
|
|
+ (:block/deadline (find-block-for-content @conn deadline-block)))
|
|
|
+ "Deadline block has correct block attribute and value")))
|