diff --git a/deps/graph-parser/src/logseq/graph_parser/util/db.cljs b/deps/graph-parser/src/logseq/graph_parser/util/db.cljs index 1a6a36d7c..c15338c71 100644 --- a/deps/graph-parser/src/logseq/graph_parser/util/db.cljs +++ b/deps/graph-parser/src/logseq/graph_parser/util/db.cljs @@ -149,10 +149,13 @@ it will return 1622433600000, which is equivalent to Mon May 31 2021 00 :00:00." (cond (keyword? input) (or - (resolve-keyword-input db input {:current-block-uuid current-block-uuid - :current-page-fn current-page-fn}) - input) - + (resolve-keyword-input db input {:current-block-uuid current-block-uuid + :current-page-fn current-page-fn}) + ;; The input is returned back unresolved if a resolver communicates it + ;; can't resolve it by returning nil. We may want to error if this is too + ;; subtle for the user + input) + (and (string? input) (page-ref/page-ref? input)) (-> (page-ref/get-page-name input) (string/lower-case)) diff --git a/src/test/frontend/db/query_react_test.cljs b/src/test/frontend/db/query_react_test.cljs index e08d580df..cac96648e 100644 --- a/src/test/frontend/db/query_react_test.cljs +++ b/src/test/frontend/db/query_react_test.cljs @@ -65,7 +65,7 @@ adds rules that users often use" :where [?b :block/page ?bp] [?bp :block/name ?current-page]]} {:current-page-fn nil}))) - ":current-page input fails gracefully when not present") + ":current-page input doesn't resolve when not present") (is (= ["child 1" "child 2"] (let [block-uuid (-> (db-utils/q '[:find (pull ?b [:block/uuid]) @@ -86,7 +86,7 @@ adds rules that users often use" :query '[:find (pull ?b [*]) :in $ ?current-block :where [?b :block/parent ?current-block]]}))) - ":current-block input fails gracefuly when current-block-uuid is not provided") + ":current-block input doesn't resolve when current-block-uuid is not provided") (is (= [] (map :block/content @@ -95,7 +95,7 @@ adds rules that users often use" :in $ ?current-block :where [?b :block/parent ?current-block]]} {:current-block-uuid :magic}))) - ":current-block input fails gracefuly when current-block-uuid is invalid") + ":current-block input doesn't resolve when current-block-uuid is invalid") (is (= ["parent"] (let [block-uuid (-> (db-utils/q '[:find (pull ?b [:block/uuid])