Browse Source

test(encryption): make tests work with async file operations

Kan-Ru Chen 4 years ago
parent
commit
641a64db0a
2 changed files with 68 additions and 55 deletions
  1. 63 53
      src/test/frontend/db/model_test.cljs
  2. 5 2
      src/test/frontend/db/query_dsl_test.cljs

+ 63 - 53
src/test/frontend/db/model_test.cljs

@@ -4,68 +4,78 @@
             [datascript.core :as d]
             [frontend.db-schema :as schema]
             [frontend.handler.repo :as repo-handler]
-            [cljs.test :refer [deftest is are testing use-fixtures]]))
+            [promesa.core :as p]
+            [cljs.test :refer [deftest is are testing use-fixtures async]]))
 
 (deftest test-page-alias-with-multiple-alias
   []
-  (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)))
+  (async done
+    (p/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})
+                  (p/catch (fn [] "ignore indexedDB error")))
+            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)
+        (set ["b" "c" "d"]) (set alias-names))
+      (done))))
 
 (deftest test-page-alias-set
   []
-  (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)))
+  (async done
+    (p/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})
+                  (p/catch (fn [] "ignore indexedDB error")))
+            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)
+        (set ["b" "c"]) (set alias-names))
+      (done))))
 
 (deftest test-page-alias-without-brackets
   []
-  (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)))
+  (async done
+    (p/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})
+                  (p/catch (fn [] "ignore indexedDB error")))
+            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)
+        (set ["b" "c"]) (set alias-names))
+      (done))))
 
 (use-fixtures :each
   {:before config/start-test-db!

+ 5 - 2
src/test/frontend/db/query_dsl_test.cljs

@@ -6,7 +6,8 @@
             [datascript.core :as d]
             [frontend.db-schema :as schema]
             [frontend.handler.repo :as repo-handler]
-            [cljs.test :refer [deftest is are testing use-fixtures]]))
+            [promesa.core :as p]
+            [cljs.test :refer [deftest is are testing use-fixtures async]]))
 
 ;; TODO: quickcheck
 ;; 1. generate query filters
@@ -93,7 +94,9 @@ parent: child page 2
 :last_modified_at: 1609084800002
 :END:
 "}]]
-    (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false})))
+    (async done
+      (-> (p/then (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}) done)
+          (p/catch #(done))))))
 
 (def parse (partial dsl/parse test-db))