1. Clojure


Kit sets up a default test harness found in the test directory of the project. It comes supplied with a test-utils namespace that has some handy utilities for testing

(ns <app-ns>.test-utils
    [<app-ns>.core :as core]))

(defn system-state []
  (or @core/system state/system))

(defn system-fixture
  (fn [f]
    (when (nil? (system-state))
      (core/start-app {:opts {:profile :test}}))

The system-fixture can be used as a fixture before any tests that require your system to be started. It ensures that the system boots with the test environment.

You can use system-state to get the current running state of your system. This is handy if you need to reference, access, or override components for individual tests.