@@ -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")
|
||||||
|
|||||||
@@ -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!))
|
||||||
|
|||||||
@@ -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}}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user