diff --git a/.gitignore b/.gitignore index 3f2b0c0c6d..09eea9e9bc 100644 --- a/.gitignore +++ b/.gitignore @@ -48,7 +48,7 @@ ios/App/App/capacitor.config.json startup.png /src/main/frontend/tldraw-logseq.js -/src/test/docs +/src/test/docs* ~*~ ios/App/App/capacitor.config.json diff --git a/deps/graph-parser/.gitignore b/deps/graph-parser/.gitignore index 9164a5adcb..243e1ca4ac 100644 --- a/deps/graph-parser/.gitignore +++ b/deps/graph-parser/.gitignore @@ -1,3 +1,3 @@ /.clj-kondo/.cache cljs-test-runner-out -/test/docs +/test/docs* diff --git a/deps/graph-parser/src/logseq/graph_parser/test/docs_graph_helper.cljs b/deps/graph-parser/src/logseq/graph_parser/test/docs_graph_helper.cljs index 14f6aeabe4..bde79acad7 100644 --- a/deps/graph-parser/src/logseq/graph_parser/test/docs_graph_helper.cljs +++ b/deps/graph-parser/src/logseq/graph_parser/test/docs_graph_helper.cljs @@ -65,6 +65,8 @@ (is (= (->> files ;; logseq files aren't saved under :block/file (remove #(string/includes? % (str "/" gp-config/app-name "/"))) + ;; edn files being listed in docs by parse-graph aren't graph files + (remove #(and (not (gp-config/whiteboard? %)) (string/ends-with? % ".edn"))) set) (->> (d/q '[:find (pull ?b [* {:block/file [:file/path]}]) :where [?b :block/name] [?b :block/file]] @@ -83,7 +85,7 @@ ffirst)) "Journal page count on disk equals count in db") - (is (= {"CANCELED" 2 "DONE" 6 "LATER" 4 "NOW" 5} + (is (= {"CANCELED" 2 "DONE" 6 "LATER" 4 "NOW" 5 "TODO" 22} (->> (d/q '[:find (pull ?b [*]) :where [?b :block/marker]] db) (map first) @@ -92,29 +94,30 @@ (into {}))) "Task marker counts") - (is (= {:markdown 3143 :org 460} ;; 2 pages for namespaces are not parsed + (is (= {:markdown 5495 :org 457} ;; 2 pages for namespaces are not parsed (get-block-format-counts db)) "Block format counts") - (is (= {:title 98 :id 98 - :updated-at 47 :created-at 47 - :card-last-score 6 :card-repeats 6 :card-next-schedule 6 - :card-last-interval 6 :card-ease-factor 6 :card-last-reviewed 6 - :alias 6 :logseq.macro-arguments 94 :logseq.macro-name 94 :heading 64} + (is (= {:description 81, :updated-at 46, :tags 5, :logseq.macro-arguments 104 + :logseq.tldraw.shape 79, :card-last-score 6, :card-repeats 6, + :card-next-schedule 6, :ls-type 79, :card-last-interval 6, :type 107, + :template 5, :title 114, :alias 41, :supports 5, :id 145, :url 5, + :card-ease-factor 6, :logseq.macro-name 104, :created-at 46, + :card-last-reviewed 6, :platforms 51, :initial-version 8, :heading 226} (get-top-block-properties db)) "Counts for top block properties") - (is (= {:title 98 - :alias 6 - :tags 2 :permalink 2 - :name 1 :type 1 :related 1 :sample 1 :click 1 :id 1 :example 1} + (is (= {:description 77, :tags 5, :permalink 1, :ls-type 1, :type 104, + :related 1, :source 1, :title 113, :author 1, :sample 1, :alias 41, + :logseq.tldraw.page 1, :supports 5, :url 5, :platforms 50, + :initial-version 7, :full-title 1} (get-all-page-properties db)) "Counts for all page properties") (is (= {:block/scheduled 2 :block/priority 4 :block/deadline 1 - :block/collapsed? 22 + :block/collapsed? 80 :block/repeated? 1} (->> [:block/scheduled :block/priority :block/deadline :block/collapsed? :block/repeated?] @@ -125,13 +128,13 @@ (into {}))) "Counts for blocks with common block attributes") - (is (= #{"term" "setting" "book" "templates" "Query" "Query/table" "page"} + (is (= #{"term" "setting" "book" "templates" "Query table" "page" + "Whiteboard" "Whiteboard/Tool" "Community" "Tweet"} (->> (d/q '[:find (pull ?n [*]) :where [?b :block/namespace ?n]] db) (map (comp :block/original-name first)) set)) "Has correct namespaces"))) -;; TODO update me to the number of the latest version of doc when namespace is updated (defn docs-graph-assertions "These are common assertions that should pass in both graph-parser and main logseq app. It is important to run these in both contexts to ensure that the @@ -141,15 +144,15 @@ ;; Counts assertions help check for no major regressions. These counts should ;; only increase over time as the docs graph rarely has deletions (testing "Counts" - (is (= 211 (count files)) "Correct file count") - (is (= 42110 (count (d/datoms db :eavt))) "Correct datoms count") + (is (= 306 (count files)) "Correct file count") + (is (= 69679 (count (d/datoms db :eavt))) "Correct datoms count") - (is (= 3600 + (is (= 5866 (ffirst (d/q '[:find (count ?b) :where [?b :block/path-refs ?bp] [?bp :block/name]] db))) "Correct referenced blocks count") - (is (= 21 + (is (= 23 (ffirst (d/q '[:find (count ?b) :where [?b :block/content ?content] diff --git a/deps/graph-parser/test/logseq/graph_parser/cli_test.cljs b/deps/graph-parser/test/logseq/graph_parser/cli_test.cljs index 05e1db5dcc..626cc58221 100644 --- a/deps/graph-parser/test/logseq/graph_parser/cli_test.cljs +++ b/deps/graph-parser/test/logseq/graph_parser/cli_test.cljs @@ -6,9 +6,8 @@ ;; Integration test that test parsing a large graph like docs (deftest ^:integration parse-graph - (let [graph-dir "test/docs" - ;; TODO update docs filename rules to the latest version when the namespace PR is released - _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.6.7") + (let [graph-dir "test/docs-0.9.2" + _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.9.2") {:keys [conn files asts]} (gp-cli/parse-graph graph-dir {:verbose false})] ;; legacy parsing (docs-graph-helper/docs-graph-assertions @conn files) @@ -19,6 +18,8 @@ "There's an ast returned for every file processed") (is (empty? (remove #(or (seq (:ast %)) + ;; edn files don't have ast + (string/ends-with? (:file %) ".edn") ;; logseq files don't have ast ;; could also used gp-config but API isn't public yet (string/includes? (:file %) (str graph-dir "/logseq/"))) diff --git a/deps/graph-parser/test/logseq/graph_parser/mldoc_test.cljs b/deps/graph-parser/test/logseq/graph_parser/mldoc_test.cljs index bc7bff9be1..2437cab5e0 100644 --- a/deps/graph-parser/test/logseq/graph_parser/mldoc_test.cljs +++ b/deps/graph-parser/test/logseq/graph_parser/mldoc_test.cljs @@ -120,8 +120,8 @@ body" (is ["@tag" "tag1" "tag2" "tag3"] (sort (:tags props)))))) (deftest ^:integration test->edn - (let [graph-dir "test/docs" - _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.6.7") + (let [graph-dir "test/docs-0.9.2" + _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.9.2") files (gp-cli/build-graph-files graph-dir) asts-by-file (->> files (map (fn [{:file/keys [path content]}] @@ -131,21 +131,20 @@ body" (gp-mldoc/->edn content (gp-mldoc/default-config format))]))) (into {}))] - (is (= {"CommentBlock" 1, - "Custom" 41, + (is (= {"Custom" 50, "Displayed_Math" 1, "Drawer" 1, "Example" 20, "Footnote_Definition" 2, - "Heading" 3496, - "Hiccup" 15, - "List" 37, - "Paragraph" 417, - "Properties" 91, - "Property_Drawer" 201, - "Quote" 9, - "Raw_Html" 12, - "Src" 56, - "Table" 4} + "Heading" 5648, + "Hiccup" 9, + "List" 22, + "Paragraph" 573, + "Properties" 87, + "Property_Drawer" 423, + "Quote" 24, + "Raw_Html" 18, + "Src" 79, + "Table" 8} (->> asts-by-file (mapcat val) (map ffirst) frequencies)) "AST node type counts"))) diff --git a/src/test/frontend/handler/repo_test.cljs b/src/test/frontend/handler/repo_test.cljs index 7a1de484d2..445afe2b13 100644 --- a/src/test/frontend/handler/repo_test.cljs +++ b/src/test/frontend/handler/repo_test.cljs @@ -11,11 +11,9 @@ (use-fixtures :each {:before test-helper/start-test-db! :after test-helper/destroy-test-db!}) -;; TODO update docs filename rules to the latest version when the namespace PR is released (deftest ^:integration parse-and-load-files-to-db - (let [graph-dir "src/test/docs" - ;; TODO update me to the latest version of doc when namespace is updated - _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.6.7") + (let [graph-dir "src/test/docs-0.9.2" + _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir "v0.9.2") files (gp-cli/build-graph-files graph-dir) _ (repo-handler/parse-files-and-load-to-db! test-helper/test-db files {:re-render? false :verbose false}) db (conn/get-db test-helper/test-db)]