Files
btcdata/test/clj/pmagnus/btcdata/web/controllers/health_test.clj
T
2026-09-19 16:16:48 +02:00

25 lines
1.0 KiB
Clojure

(ns pmagnus.btcdata.web.controllers.health-test
(:require [clojure.test :refer [deftest is]]
[pmagnus.btcdata.web.controllers.health :as health]))
(def disabled-stream {:state (atom {:enabled? false}) :latest-price (atom nil)})
(deftest healthcheck-is-process-only
(is (= 200 (:status (health/healthcheck! {})))))
(deftest readiness-check-tests-database
(let [called (atom nil)
query-fn (fn [query params] (reset! called [query params]))]
(is (= 200 (:status (health/readiness-check! query-fn disabled-stream {}))))
(is (= [:check-database {}] @called)))
(is (= 503 (:status (health/readiness-check!
(fn [_ _] (throw (ex-info "database unavailable" {})))
disabled-stream {})))))
(deftest stale-stream-is-not-ready
(is (= 503 (:status (health/readiness-check!
(fn [_ _] {})
{:state (atom {:enabled? true :connected? true})
:latest-price (atom {:recorded-at java.time.Instant/EPOCH})}
{})))))