mirror of https://github.com/logseq/logseq
Organize testing helpers and namespaces
Start a helper ns and put test specific namespaces under frontend.test.pull/4530/head
parent
8eab5753b0
commit
a7b230d71d
|
@ -67,7 +67,7 @@
|
|||
:devtools {:enabled false}
|
||||
;; disable :static-fns to allow for with-redefs and repl development
|
||||
:compiler-options {:static-fns false}
|
||||
:main frontend.node-test-runner/main}
|
||||
:main frontend.test.node-test-runner/main}
|
||||
|
||||
:publishing {:target :browser
|
||||
:module-loader true
|
||||
|
|
|
@ -3,16 +3,6 @@
|
|||
[frontend.state :as state]
|
||||
[frontend.db.persist :as db-persist]))
|
||||
|
||||
(defonce test-db "test-db")
|
||||
|
||||
(defn start-test-db!
|
||||
[]
|
||||
(conn/start! nil test-db))
|
||||
|
||||
(defn destroy-test-db!
|
||||
[]
|
||||
(conn/destroy-all!))
|
||||
|
||||
(defn destroy-db! [] (conn/destroy-all!))
|
||||
|
||||
(defn clear-current-repo []
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
(ns frontend.db.model-test
|
||||
(:require [cljs.test :refer [use-fixtures deftest is]]
|
||||
[frontend.db.model :as model]
|
||||
[frontend.db.config :as config]
|
||||
[frontend.handler.repo :as repo-handler]))
|
||||
[frontend.test.helper :as test-helper :refer [load-test-files]]))
|
||||
|
||||
(defn- load-test-files [files]
|
||||
(repo-handler/parse-files-and-load-to-db! config/test-db files {:re-render? false}))
|
||||
(use-fixtures :each {:before test-helper/start-test-db!
|
||||
:after test-helper/destroy-test-db!})
|
||||
|
||||
(deftest get-page-namespace-routes
|
||||
(load-test-files [{:file/path "pages/a.b.c.md"
|
||||
|
@ -16,7 +15,7 @@
|
|||
:file/content "baz"}])
|
||||
|
||||
(is (= '()
|
||||
(map :block/name (model/get-page-namespace-routes config/test-db "b/c")))
|
||||
(map :block/name (model/get-page-namespace-routes test-helper/test-db "b/c")))
|
||||
"Empty if page exists"))
|
||||
|
||||
;; (deftest test-page-alias-with-multiple-alias
|
||||
|
@ -83,8 +82,4 @@
|
|||
;; 1 (count a-ref-blocks)
|
||||
;; (set ["b" "c"]) (set alias-names))))
|
||||
|
||||
(use-fixtures :each
|
||||
{:before config/start-test-db!
|
||||
:after config/destroy-test-db!})
|
||||
|
||||
#_(cljs.test/test-ns 'frontend.db.model-test)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
[datascript.core :as d]
|
||||
[frontend.core-test :as core-test]
|
||||
[frontend.db.outliner :as outliner]
|
||||
[frontend.fixtures :as fixtures]))
|
||||
[frontend.test.fixtures :as fixtures]))
|
||||
|
||||
(use-fixtures :each fixtures/reset-db)
|
||||
|
||||
|
|
|
@ -2,30 +2,29 @@
|
|||
(:require [cljs.test :refer [are deftest testing use-fixtures is]]
|
||||
[clojure.string :as str]
|
||||
[frontend.db :as db]
|
||||
[frontend.db.config :refer [test-db] :as config]
|
||||
[frontend.db.query-dsl :as query-dsl]
|
||||
[frontend.handler.repo :as repo-handler]))
|
||||
[frontend.test.helper :as test-helper :refer [load-test-files]]))
|
||||
|
||||
;; TODO: quickcheck
|
||||
;; 1. generate query filters
|
||||
;; 2. find illegal queries which can't be executed by datascript
|
||||
;; 3. find filters combinations which might break the current query implementation
|
||||
|
||||
(use-fixtures :each {:before test-helper/start-test-db!
|
||||
:after test-helper/destroy-test-db!})
|
||||
|
||||
;; Test helpers
|
||||
;; ============
|
||||
(defn- load-test-files [files]
|
||||
(repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}))
|
||||
|
||||
(defn- dsl-query
|
||||
[s]
|
||||
(db/clear-query-state!)
|
||||
(when-let [result (query-dsl/query test-db s)]
|
||||
(when-let [result (query-dsl/query test-helper/test-db s)]
|
||||
(map first (deref result))))
|
||||
|
||||
(defn- custom-query
|
||||
[query]
|
||||
(db/clear-query-state!)
|
||||
(when-let [result (query-dsl/custom-query test-db query {})]
|
||||
(when-let [result (query-dsl/custom-query test-helper/test-db query {})]
|
||||
(map first (deref result))))
|
||||
|
||||
(defn- q
|
||||
|
@ -34,7 +33,7 @@
|
|||
(let [parse-result (query-dsl/parse s)
|
||||
query (:query parse-result)]
|
||||
{:query (if (seq query) (vec query) query)
|
||||
:result (query-dsl/query test-db s)}))
|
||||
:result (query-dsl/query test-helper/test-db s)}))
|
||||
|
||||
;; Tests
|
||||
;; =====
|
||||
|
@ -519,15 +518,11 @@ last-modified-at:: 1609084800002"}]]
|
|||
;; '(1608968448113 1608968448115 1608968448120 1609052958714 1609052974285)))))
|
||||
)
|
||||
|
||||
(use-fixtures :each
|
||||
{:before config/start-test-db!
|
||||
:after config/destroy-test-db!})
|
||||
|
||||
#_(cljs.test/run-tests)
|
||||
|
||||
(comment
|
||||
(require '[clojure.pprint :as pprint])
|
||||
(config/start-test-db!)
|
||||
(test-helper/start-test-db!)
|
||||
(load-test-files-with-timestamps)
|
||||
|
||||
(query-dsl/query test-db "(task done)")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
(ns frontend.modules.outliner.core-test
|
||||
(:require [cljs.test :refer [deftest is use-fixtures testing] :as test]
|
||||
[frontend.fixtures :as fixtures]
|
||||
[frontend.test.fixtures :as fixtures]
|
||||
[frontend.modules.outliner.core :as outliner-core]
|
||||
[frontend.modules.outliner.datascript :as outliner-ds]
|
||||
[frontend.modules.outliner.tree :as tree]
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
(ns frontend.modules.outliner.ds-test
|
||||
(:require [cljs.test :refer [deftest is use-fixtures] :as test]
|
||||
[frontend.fixtures :as fixtures]
|
||||
[frontend.test.fixtures :as fixtures]
|
||||
[frontend.modules.outliner.datascript :as ds]))
|
||||
|
||||
(use-fixtures :each
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{:clj-kondo/config {:linters {:inline-def {:level :off}}}}
|
||||
(:require [frontend.react :as r]
|
||||
[cljs.test :refer [deftest is use-fixtures]]
|
||||
[frontend.fixtures :as fixtures]))
|
||||
[frontend.test.fixtures :as fixtures]))
|
||||
|
||||
(use-fixtures :each
|
||||
fixtures/react-components)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
(ns frontend.fixtures
|
||||
(ns frontend.test.fixtures
|
||||
(:require [datascript.core :as d]
|
||||
[frontend.config :as config]
|
||||
[frontend.db-schema :as db-schema]
|
|
@ -0,0 +1,17 @@
|
|||
(ns frontend.test.helper
|
||||
"Common helper fns for tests"
|
||||
(:require [frontend.handler.repo :as repo-handler]
|
||||
[frontend.db.conn :as conn]))
|
||||
|
||||
(defonce test-db "test-db")
|
||||
|
||||
(defn start-test-db!
|
||||
[]
|
||||
(conn/start! nil test-db))
|
||||
|
||||
(defn destroy-test-db!
|
||||
[]
|
||||
(conn/destroy-all!))
|
||||
|
||||
(defn load-test-files [files]
|
||||
(repo-handler/parse-files-and-load-to-db! test-db files {:re-render? false}))
|
|
@ -1,4 +1,4 @@
|
|||
(ns frontend.node-test-runner
|
||||
(ns frontend.test.node-test-runner
|
||||
"shadow-cljs test runner for :node-test that provides the same test selection
|
||||
options as
|
||||
https://github.com/cognitect-labs/test-runner#invoke-with-clojure--m-clojuremain.
|
Loading…
Reference in New Issue