model_test.cljs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. (ns frontend.db.model-test
  2. (:require [frontend.db.model :as model]
  3. [frontend.db.config :refer [test-db] :as config]
  4. [datascript.core :as d]
  5. [frontend.db-schema :as schema]
  6. [frontend.handler.repo :as repo-handler]
  7. [promesa.core :as p]
  8. [cljs.test :refer [deftest is are testing use-fixtures]]))
  9. (deftest test-page-alias-with-multiple-alias
  10. []
  11. (p/let [files [{:file/path "a.md"
  12. :file/content "---\ntitle: a\nalias: b, c\n---"}
  13. {:file/path "b.md"
  14. :file/content "---\ntitle: b\nalias: a, d\n---"}
  15. {:file/path "e.md"
  16. :file/content "---\ntitle: e\n---\n## ref to [[b]]"}]
  17. _ (-> (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false})
  18. (p/catch (fn [] "ignore indexedDB error")))
  19. a-aliases (model/page-alias-set test-db "a")
  20. b-aliases (model/page-alias-set test-db "b")
  21. alias-names (model/get-page-alias-names test-db "a")
  22. b-ref-blocks (model/get-page-referenced-blocks test-db "b")
  23. a-ref-blocks (model/get-page-referenced-blocks test-db "a")]
  24. (are [x y] (= x y)
  25. 4 (count a-aliases)
  26. 4 (count b-aliases)
  27. 1 (count b-ref-blocks)
  28. 1 (count a-ref-blocks)
  29. (set ["b" "c" "d"]) (set alias-names))))
  30. (deftest test-page-alias-set
  31. []
  32. (p/let [files [{:file/path "a.md"
  33. :file/content "---\ntitle: a\nalias: [[b]]\n---"}
  34. {:file/path "b.md"
  35. :file/content "---\ntitle: b\nalias: [[c]]\n---"}
  36. {:file/path "d.md"
  37. :file/content "---\ntitle: d\n---\n## ref to [[b]]"}]
  38. _ (-> (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false})
  39. (p/catch (fn [] "ignore indexedDB error")))
  40. a-aliases (model/page-alias-set test-db "a")
  41. b-aliases (model/page-alias-set test-db "b")
  42. alias-names (model/get-page-alias-names test-db "a")
  43. b-ref-blocks (model/get-page-referenced-blocks test-db "b")
  44. a-ref-blocks (model/get-page-referenced-blocks test-db "a")]
  45. (are [x y] (= x y)
  46. 3 (count a-aliases)
  47. 1 (count b-ref-blocks)
  48. 1 (count a-ref-blocks)
  49. (set ["b" "c"]) (set alias-names))))
  50. (deftest test-page-alias-without-brackets
  51. []
  52. (p/let [files [{:file/path "a.md"
  53. :file/content "---\ntitle: a\nalias: b\n---"}
  54. {:file/path "b.md"
  55. :file/content "---\ntitle: b\nalias: c\n---"}
  56. {:file/path "d.md"
  57. :file/content "---\ntitle: d\n---\n## ref to [[b]]"}]
  58. _ (-> (repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false})
  59. (p/catch (fn [] "ignore indexedDB error")))
  60. a-aliases (model/page-alias-set test-db "a")
  61. b-aliases (model/page-alias-set test-db "b")
  62. alias-names (model/get-page-alias-names test-db "a")
  63. b-ref-blocks (model/get-page-referenced-blocks test-db "b")
  64. a-ref-blocks (model/get-page-referenced-blocks test-db "a")]
  65. (are [x y] (= x y)
  66. 3 (count a-aliases)
  67. 1 (count b-ref-blocks)
  68. 1 (count a-ref-blocks)
  69. (set ["b" "c"]) (set alias-names))))
  70. (use-fixtures :each
  71. {:before config/start-test-db!
  72. :after config/destroy-test-db!})
  73. #_(cljs.test/test-ns 'frontend.db.model-test)