瀏覽代碼

Add a few more mldoc unit tests

Also remove local integration test
Gabriel Horner 3 年之前
父節點
當前提交
44bc0e8f40
共有 1 個文件被更改,包括 58 次插入36 次删除
  1. 58 36
      src/test/logseq/graph_parser/mldoc_test.cljs

+ 58 - 36
src/test/logseq/graph_parser/mldoc_test.cljs

@@ -1,7 +1,5 @@
 (ns logseq.graph-parser.mldoc-test
   (:require [logseq.graph-parser.mldoc :as gp-mldoc]
-            ["fs" :as fs]
-            ["child_process" :as child-process]
             [clojure.string :as string]
             [frontend.test.docs-graph-helper :as docs-graph-helper]
             [cljs.test :refer [testing deftest are is]]))
@@ -42,6 +40,63 @@
     (are [x y] (= (gp-mldoc/link? :markdown x) y)
       "[YouTube](https://www.youtube.com/watch?v=-8ym7pyUs9gL) - [Vimeo](https://vimeo.com/677920303) {{youtube https://www.youtube.com/watch?v=-8ym7pyUs9g}}" true)))
 
+(def md-config (gp-mldoc/default-config :markdown))
+
+(deftest src-test
+  (is (= [["Src"
+           {:lines [": hello" "\n"],
+            :pos_meta {:start_pos 4, :end_pos 12},
+            :full_content "```\n: hello\n```"}]
+          {:start_pos 0, :end_pos 15}]
+         (first (gp-mldoc/->edn "```
+: hello
+```" md-config {})))
+      "Basic src example")
+
+  (is (= [["Src"
+            {:lines ["  hello" "\n" "  world" "\n"],
+             :pos_meta {:start_pos 7, :end_pos 25},
+             :full_content "```\nhello\nworld\n```"}]
+           {:start_pos 1, :end_pos 29}]
+         (second (gp-mldoc/->edn "
+  ```
+  hello
+  world
+  ```
+" md-config {})))
+      "Src example with leading whitespace"))
+
+(deftest properties-test
+  (are [x y] (= [["Properties" y] nil]
+                (first (gp-mldoc/->edn x md-config {})))
+
+       ;; comma separates values
+       "property:: foo, bar"
+       {:property #{"foo" "bar"}}
+
+       ;; alias property
+       "alias:: foo,, bar"
+       {:alias ["foo" "bar"]}
+
+       ;; tags property
+       "tags:: foo,bar,foo"
+       {:tags ["foo" "bar"]}
+
+       ;; title property
+       "title:: comma, is ok"
+       {:title "comma, is ok"}))
+
+(deftest name-definition-test
+  (is (= [["List"
+           [{:content [["Paragraph" [["Plain" "definition"]]]],
+             :items [],
+             :name [["Plain" "term"]],
+             :indent 0,
+             :ordered false}]]
+          {:start_pos 0, :end_pos 17}]
+         (first (gp-mldoc/->edn "term
+: definition" md-config {})))))
+
 (deftest ^:integration test->edn
   (let [graph-dir "src/test/docs"
         _ (docs-graph-helper/clone-docs-repo-if-not-exists graph-dir)
@@ -72,37 +127,4 @@
             "Src" 56,
             "Table" 4}
            (->> asts-by-file (mapcat val) (map ffirst) frequencies))
-        "AST node type counts")
-
-    ; (println :DIFF)
-    ; (prn (butlast (clojure.data/diff (edn/read-string (slurp "mldoc-asts.edn"))
-    ;                                  asts-by-file)))
-    ;; This is just temporary
-    #_(is (= (clojure.edn/read-string (slurp "mldoc-asts.edn"))
-             asts-by-file)
-          "Matches initial AST")
-    #_(println "Wrote asts for" (count asts-by-file) "files")
-    #_(fs/writeFileSync "mldoc-asts.edn" (pr-str asts-by-file))))
-
-(def md-config (gp-mldoc/default-config :markdown))
-
-(deftest src-test
-  (is (= [["Src"
-           {:lines [": hello" "\n"],
-            :pos_meta {:start_pos 4, :end_pos 12},
-            :full_content "```\n: hello\n```"}]
-          {:start_pos 0, :end_pos 15}]
-         (first (gp-mldoc/->edn "```
-: hello
-```" md-config {})))))
-
-(deftest name-definition-test
-  (is (= [["List"
-           [{:content [["Paragraph" [["Plain" "definition"]]]],
-             :items [],
-             :name [["Plain" "term"]],
-             :indent 0,
-             :ordered false}]]
-          {:start_pos 0, :end_pos 17}]
-         (first (gp-mldoc/->edn "term
-: definition" md-config {})))))
+        "AST node type counts")))