diff --git a/src/test/frontend/db/query_dsl_test.cljs b/src/test/frontend/db/query_dsl_test.cljs index 13bc6e71d..6ef5b454d 100644 --- a/src/test/frontend/db/query_dsl_test.cljs +++ b/src/test/frontend/db/query_dsl_test.cljs @@ -359,20 +359,14 @@ prop-d:: nada"}]) ; (dsl-query "(or (priority a) (not (priority c)))"))) ) -(deftest page-tags-and-all-page-tags-queries +(deftest ^:done page-tags-and-all-page-tags-queries (load-test-files [{:file/path "pages/page1.md" - :file/content "--- -tags: [[page-tag-1]], [[page-tag-2]] ----"} + :file/content "tags:: [[page-tag-1]], [[page-tag-2]]"} {:file/path "pages/page2.md" - :file/content "--- -tags: [[page-tag-2]], [[page-tag-3]] ----"} + :file/content "tags:: [[page-tag-2]], [[page-tag-3]]"} {:file/path "pages/page3.md" - :file/content "--- -tags: [[other]] ----"}]) + :file/content "tags:: [[other]]"}]) (are [x y] (= (set y) (set (map :block/name (dsl-query x)))) @@ -590,10 +584,11 @@ created-at:: 1608968448116 result) "sorted-by asc"))) - (testing "user page property rating" - (is (= [10 8] - (->> (dsl-query "(and (page-property rating) (sort-by rating))") - (map #(get-property-value % :rating)))))))) + ;; FIXME: Once :number property approach resolved + #_(testing "user page property rating" + (is (= [10 8] + (->> (dsl-query "(and (page-property rating) (sort-by rating))") + (map #(get-property-value % :rating)))))))) (deftest ^:done simplify-query (are [x y] (= (query-dsl/simplify-query x) y) diff --git a/src/test/frontend/test/helper.cljs b/src/test/frontend/test/helper.cljs index f83ae9e4c..91b6604fa 100644 --- a/src/test/frontend/test/helper.cljs +++ b/src/test/frontend/test/helper.cljs @@ -204,6 +204,15 @@ "CANCELED" :logseq.task/status.canceled "CANCELLED" :logseq.task/status.canceled}) +(defn- property-lines->attributes + [lines] + (let [props (property-lines->properties lines)] + (cond-> {:build/properties (dissoc props :created-at :tags)} + (:tags props) + (assoc :build/tags (mapv keyword (:tags props))) + (:created-at props) + (assoc :block/created-at (:created-at props))))) + (defn- parse-content* [content*] (let [blocks** (->> (string/split content* #"\n-\s*") @@ -213,14 +222,10 @@ ;; If no property chars may accidentally parse child blocks ;; so don't do property parsing (and (string/includes? s ":: ") props) - ((fn [x] - (let [props' (property-lines->properties props)] - (merge x (cond-> {:build/properties (dissoc props' :created-at)} - (:created-at props') - (assoc :block/created-at (:created-at props')))))))))))) - [page-props blocks*] + (merge (property-lines->attributes props))))))) + [page-attrs blocks*] (if (string/includes? (:block/content (first blocks**)) "::") - [(property-lines->properties (string/split-lines (:block/content (first blocks**)))) + [(property-lines->attributes (string/split-lines (:block/content (first blocks**)))) (rest blocks**)] [nil blocks**]) blocks @@ -231,7 +236,7 @@ blocks*)] {:blocks (mapv (fn [b] (update b :block/content #(string/replace-first % #"^-\s*" ""))) blocks) - :page-properties page-props})) + :page-attributes page-attrs})) (defn- parse-content [content] @@ -243,7 +248,7 @@ (defn- build-blocks-tx-options [options*] (let [pages-and-blocks (mapv (fn [{:file/keys [path content]}] - (let [{:keys [blocks page-properties]} (parse-content content) + (let [{:keys [blocks page-attributes]} (parse-content content) ;; _ (prn :parse-content content blocks) unique-page-attrs (if (string/starts-with? path "journals") @@ -256,8 +261,8 @@ (or (second (re-find #"/([^/]+)\." path)) (throw (ex-info (str "Can't detect page name of file: " (pr-str path)) {})))})] {:page (cond-> unique-page-attrs - (seq page-properties) - (assoc :build/properties page-properties)) + (seq page-attributes) + (merge page-attributes)) :blocks blocks})) options*) options {:pages-and-blocks pages-and-blocks