All checks were successful
build / build (push) Successful in 1m47s

This commit is contained in:
2026-03-25 15:32:24 -06:00
parent 06e6b8ebaf
commit c6d10b9776
4 changed files with 45 additions and 22 deletions

View File

@@ -63,6 +63,9 @@
(throw (ex-info "Failed to conform config" (throw (ex-info "Failed to conform config"
(s/explain-data spec r)))))) (s/explain-data spec r))))))
(defn load-config! [var spec files & {:as opts}]
(alter-var-root var (constantly (read-config spec files opts))))
(def sources (def sources
[;; Default config. [;; Default config.
(io/resource "net/deertopia/doerg/default-config.edn") (io/resource "net/deertopia/doerg/default-config.edn")

View File

@@ -6,17 +6,15 @@
[net.deertopia.publisher.config :as publisher-config] [net.deertopia.publisher.config :as publisher-config]
[babashka.fs :as fs])) [babashka.fs :as fs]))
(alter-var-root (doerg-config/load-config! #'doerg-config/*cfg*
#'doerg-config/*cfg* ::doerg/config
(constantly (doerg-config/read-config ::doerg/config doerg-config/sources
doerg-config/sources :profile :dev)
:profile :dev)))
(alter-var-root (doerg-config/load-config! #'publisher-config/*cfg*
#'publisher-config/*cfg* ::publisher/config
(constantly (doerg-config/read-config ::publisher/config publisher-config/sources
publisher-config/sources :profile :dev)
:profile :dev)))
(when (not= :running (server/status)) (when (nil? (server/status))
(server/start!)) (server/start!))

View File

@@ -3,4 +3,4 @@
#envf ["%s/.local/share" HOME]] #envf ["%s/.local/share" HOME]]
"/doerg-publisher"] "/doerg-publisher"]
:org-roam-db-path #join [#env HOME "/.cache/emacs/org-roam.db"] :org-roam-db-path #join [#env HOME "/.cache/emacs/org-roam.db"]
:port 8080} :port #profile {:default 8080}}

View File

@@ -2,19 +2,41 @@
(:require [net.deertopia.publisher.server :as sut] (:require [net.deertopia.publisher.server :as sut]
[reitit.ring] [reitit.ring]
[clojure.test :as t] [clojure.test :as t]
[clojure.set :as set] [net.deertopia.publisher.config :as publisher-cfg]
[net.deertopia.publisher.config :as cfg] [net.deertopia.doerg.config :as doerg-cfg]
[net.deertopia.publisher :as-alias publisher])) [net.deertopia.publisher :as-alias publisher]
[net.deertopia.doerg :as-alias doerg]))
(t/use-fixtures
:once (fn [f]
(binding [doerg-cfg/*cfg*
(doerg-cfg/read-config
::doerg/config doerg-cfg/sources
:profile :test)
publisher-cfg/*cfg*
(doerg-cfg/read-config
::publisher/config publisher-cfg/sources
:profile :test)]
(f))))
(defn with-server [f]
(let [was-already-running? (= :running (sut/status))]
(when-not was-already-running?
(sut/start!))
(f)
(when-not was-already-running?
(sut/stop!))))
(t/deftest server-is-running (t/deftest server-is-running
;; 서버는 벌써 시작한 다음에 이 테스트 하면 잘못됩니다. ;; 서버는 벌써 시작한 다음에 이 테스트 하면 잘못됩니다.
(assert (not= :running (sut/status))) ;; (assert (not= :running (sut/status)))
(sut/start!) (with-server
(t/is (= :running (sut/status))) (fn []
(t/is (->> (format "http://localhost:%d" (::publisher/port cfg/*cfg*)) (t/is (= :running (sut/status)))
slurp (t/is (->> (format "http://localhost:%d"
string?)) (::publisher/port publisher-cfg/*cfg*))
(sut/stop!)) slurp
string?)))))
#_ #_
(t/deftest get-nonexistent-node (t/deftest get-nonexistent-node