mirror of
https://github.com/logseq/logseq.git
synced 2026-02-01 22:47:36 +00:00
Document repl test workflow as a followup to #9372
Also organized unit test sections more
This commit is contained in:
@@ -139,7 +139,17 @@ By convention, a namespace's tests are found at a corresponding namespace
|
||||
of the same name with an added `-test` suffix. For example, tests
|
||||
for `frontend.db.model` are found in `frontend.db.model-test`.
|
||||
|
||||
There are a couple different ways to develop with tests:
|
||||
There are a couple different ways to run tests:
|
||||
|
||||
* [Focus tests](#focus-tests) - Run one or more tests from the CLI
|
||||
* [Autorun tests](#autorun-tests) - Autorun tests from the CLI
|
||||
* [Repl tests](#repl-tests) - Run tests from REPL
|
||||
|
||||
There a couple types of tests and they can overlap with each other:
|
||||
|
||||
* [Database tests](#database-tests) - Tests that involve a datascript DB.
|
||||
* [Performance tests](#performance-tests) - Tests that aim to measure and enforce a performance characteristic.
|
||||
* [Async tests](#async-tests) - Tests that run async code and require some helpers.
|
||||
|
||||
#### Focus Tests
|
||||
|
||||
@@ -166,6 +176,15 @@ To run tests automatically on file save, run `clojure -M:test watch test
|
||||
the `:ns-regexp` option e.g. `clojure -M:test watch test --config-merge
|
||||
'{:autorun true :ns-regexp "frontend.util.page-property-test"}'`.
|
||||
|
||||
#### REPL tests
|
||||
|
||||
Most unit tests e.g. ones that are browser compatible and don't require node libraries, can be run from the REPL. To do so:
|
||||
|
||||
* Start a REPL for your editor. See [here for an example](https://github.com/logseq/logseq/blob/master/docs/develop-logseq.md#repl-setup).
|
||||
* Load a test namespace.
|
||||
* Run `(cljs.test/run-tests)` to run tests for the current test namespace.
|
||||
|
||||
|
||||
#### Database tests
|
||||
|
||||
To write a test that uses a datascript db:
|
||||
@@ -188,7 +207,7 @@ To write a performance test:
|
||||
|
||||
For examples of these tests, see `frontend.db.query-dsl-test` and `frontend.db.model-test`.
|
||||
|
||||
### Async Unit Testing
|
||||
#### Async Tests
|
||||
|
||||
Async unit testing is well supported in ClojureScript.
|
||||
https://clojurescript.org/tools/testing#async-testing is a good guide for how to
|
||||
|
||||
Reference in New Issue
Block a user