Organize testing helpers and namespaces

Start a helper ns and put test specific namespaces under frontend.test.
pull/4530/head
Gabriel Horner 2022-03-09 11:13:15 -05:00 committed by Tienson Qin
parent 8eab5753b0
commit a7b230d71d
11 changed files with 36 additions and 39 deletions

View File

@ -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

View File

@ -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 []

View File

@ -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)

View File

@ -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)

View File

@ -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)")

View File

@ -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]

View File

@ -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

View File

@ -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)

View File

@ -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]

View File

@ -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}))

View File

@ -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.