From b1d5d378a03b964905edcf3bb0a1c2caa520ac04 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Mon, 21 Dec 2020 16:44:59 +0800 Subject: [PATCH] test(alias): add more tests --- src/main/frontend/db/conn.cljs | 4 ++ src/test/frontend/db/model_test.cljs | 88 +++++++++++++++++++++------- 2 files changed, 72 insertions(+), 20 deletions(-) diff --git a/src/main/frontend/db/conn.cljs b/src/main/frontend/db/conn.cljs index 830c7d2c3..e9232d158 100644 --- a/src/main/frontend/db/conn.cljs +++ b/src/main/frontend/db/conn.cljs @@ -86,3 +86,7 @@ (d/transact! db-conn [(me-tx (d/db db-conn) me)])) (when listen-handler (listen-handler repo))))) + +(defn destroy-all! + [] + (reset! conns {})) diff --git a/src/test/frontend/db/model_test.cljs b/src/test/frontend/db/model_test.cljs index 61b04049d..7ce0f7d91 100644 --- a/src/test/frontend/db/model_test.cljs +++ b/src/test/frontend/db/model_test.cljs @@ -9,28 +9,76 @@ (defonce test-db "test-db") (defn- run-db! - [] - (conn/start! nil test-db)) + [f] + (conn/start! nil test-db) + (f) + (conn/destroy-all!)) (deftest test-page-alias-set [] - (run-db!) - (let [files [{:file/path "a.md" - :file/content "---\ntitle: a\nalias: [[b]]\n---"} - {:file/path "b.md" - :file/content "---\ntitle: b\nalias: [[c]]\n---"} - {:file/path "d.md" - :file/content "---\ntitle: d\n---\n## ref to [[b]]"}] - _ (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}) - a-aliases (model/page-alias-set test-db "a") - b-aliases (model/page-alias-set test-db "b") - alias-names (model/get-page-alias-names test-db "a") - b-ref-blocks (model/get-page-referenced-blocks test-db "b") - a-ref-blocks (model/get-page-referenced-blocks test-db "a")] - (are [x y] (= x y) - 3 (count a-aliases) - 1 (count b-ref-blocks) - 1 (count a-ref-blocks) - ["b" "c"] alias-names))) + (run-db! + (fn [] + (let [files [{:file/path "a.md" + :file/content "---\ntitle: a\nalias: [[b]]\n---"} + {:file/path "b.md" + :file/content "---\ntitle: b\nalias: [[c]]\n---"} + {:file/path "d.md" + :file/content "---\ntitle: d\n---\n## ref to [[b]]"}] + _ (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}) + a-aliases (model/page-alias-set test-db "a") + b-aliases (model/page-alias-set test-db "b") + alias-names (model/get-page-alias-names test-db "a") + b-ref-blocks (model/get-page-referenced-blocks test-db "b") + a-ref-blocks (model/get-page-referenced-blocks test-db "a")] + (are [x y] (= x y) + 3 (count a-aliases) + 1 (count b-ref-blocks) + 1 (count a-ref-blocks) + ["b" "c"] alias-names))))) + +(deftest test-page-alias-without-brackets + [] + (run-db! + (fn [] + (let [files [{:file/path "a.md" + :file/content "---\ntitle: a\nalias: b\n---"} + {:file/path "b.md" + :file/content "---\ntitle: b\nalias: c\n---"} + {:file/path "d.md" + :file/content "---\ntitle: d\n---\n## ref to [[b]]"}] + _ (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}) + a-aliases (model/page-alias-set test-db "a") + b-aliases (model/page-alias-set test-db "b") + alias-names (model/get-page-alias-names test-db "a") + b-ref-blocks (model/get-page-referenced-blocks test-db "b") + a-ref-blocks (model/get-page-referenced-blocks test-db "a")] + (are [x y] (= x y) + 3 (count a-aliases) + 1 (count b-ref-blocks) + 1 (count a-ref-blocks) + ["b" "c"] alias-names))))) + +(deftest test-page-alias-with-multiple-alias + [] + (run-db! + (fn [] + (let [files [{:file/path "a.md" + :file/content "---\ntitle: a\nalias: b, c\n---"} + {:file/path "b.md" + :file/content "---\ntitle: b\nalias: a, d\n---"} + {:file/path "e.md" + :file/content "---\ntitle: e\n---\n## ref to [[b]]"}] + _ (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}) + a-aliases (model/page-alias-set test-db "a") + b-aliases (model/page-alias-set test-db "b") + alias-names (model/get-page-alias-names test-db "a") + b-ref-blocks (model/get-page-referenced-blocks test-db "b") + a-ref-blocks (model/get-page-referenced-blocks test-db "a")] + (are [x y] (= x y) + 4 (count a-aliases) + 4 (count b-aliases) + 1 (count b-ref-blocks) + 1 (count a-ref-blocks) + ["b" "c" "d"] alias-names))))) #_(cljs.test/test-ns 'frontend.db.model-test)