From c6d10b977656d9945636d43020093c29531c01a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Madeleine=20Sydney=20=C5=9Alaga?= Date: Wed, 25 Mar 2026 15:32:24 -0600 Subject: [PATCH] --- doerg/src/net/deertopia/doerg/config.clj | 3 ++ publisher/dev/user.clj | 20 ++++----- .../deertopia/publisher/default-config.edn | 2 +- .../net/deertopia/publisher/server_test.clj | 42 ++++++++++++++----- 4 files changed, 45 insertions(+), 22 deletions(-) diff --git a/doerg/src/net/deertopia/doerg/config.clj b/doerg/src/net/deertopia/doerg/config.clj index 9428d4b..647c2b9 100644 --- a/doerg/src/net/deertopia/doerg/config.clj +++ b/doerg/src/net/deertopia/doerg/config.clj @@ -63,6 +63,9 @@ (throw (ex-info "Failed to conform config" (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 [;; Default config. (io/resource "net/deertopia/doerg/default-config.edn") diff --git a/publisher/dev/user.clj b/publisher/dev/user.clj index 8a24a99..2501a1d 100644 --- a/publisher/dev/user.clj +++ b/publisher/dev/user.clj @@ -6,17 +6,15 @@ [net.deertopia.publisher.config :as publisher-config] [babashka.fs :as fs])) -(alter-var-root - #'doerg-config/*cfg* - (constantly (doerg-config/read-config ::doerg/config - doerg-config/sources - :profile :dev))) +(doerg-config/load-config! #'doerg-config/*cfg* + ::doerg/config + doerg-config/sources + :profile :dev) -(alter-var-root - #'publisher-config/*cfg* - (constantly (doerg-config/read-config ::publisher/config - publisher-config/sources - :profile :dev))) +(doerg-config/load-config! #'publisher-config/*cfg* + ::publisher/config + publisher-config/sources + :profile :dev) -(when (not= :running (server/status)) +(when (nil? (server/status)) (server/start!)) diff --git a/publisher/resources/net/deertopia/publisher/default-config.edn b/publisher/resources/net/deertopia/publisher/default-config.edn index 52b0b3a..d0ef04e 100644 --- a/publisher/resources/net/deertopia/publisher/default-config.edn +++ b/publisher/resources/net/deertopia/publisher/default-config.edn @@ -3,4 +3,4 @@ #envf ["%s/.local/share" HOME]] "/doerg-publisher"] :org-roam-db-path #join [#env HOME "/.cache/emacs/org-roam.db"] - :port 8080} + :port #profile {:default 8080}} diff --git a/publisher/test/net/deertopia/publisher/server_test.clj b/publisher/test/net/deertopia/publisher/server_test.clj index 683f7f6..8cd6894 100644 --- a/publisher/test/net/deertopia/publisher/server_test.clj +++ b/publisher/test/net/deertopia/publisher/server_test.clj @@ -2,19 +2,41 @@ (:require [net.deertopia.publisher.server :as sut] [reitit.ring] [clojure.test :as t] - [clojure.set :as set] - [net.deertopia.publisher.config :as cfg] - [net.deertopia.publisher :as-alias publisher])) + [net.deertopia.publisher.config :as publisher-cfg] + [net.deertopia.doerg.config :as doerg-cfg] + [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 ;; 서버는 벌써 시작한 다음에 이 테스트 하면 잘못됩니다. - (assert (not= :running (sut/status))) - (sut/start!) - (t/is (= :running (sut/status))) - (t/is (->> (format "http://localhost:%d" (::publisher/port cfg/*cfg*)) - slurp - string?)) - (sut/stop!)) + ;; (assert (not= :running (sut/status))) + (with-server + (fn [] + (t/is (= :running (sut/status))) + (t/is (->> (format "http://localhost:%d" + (::publisher/port publisher-cfg/*cfg*)) + slurp + string?))))) #_ (t/deftest get-nonexistent-node