Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion bb.edn
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@
:task (build/clean (-> config :build :http-server-clj))}

http-server-jcompile {:doc "Compile java classes"
:depends [http-server-clean]
:depends [http-server-clean jcompile]
:task (build/compile-java (-> config :build :http-server-clj))}

http-server-ccompile {:doc "Compile clojure namespaces for http-server"
Expand Down
12 changes: 6 additions & 6 deletions http-server/datahike/http/middleware.clj
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@
(defn encode-plain-value [muuntaja-with-opts]
(fn [handler]
(fn [request]
(let [format (:content-type request)
encoder (m/encoder muuntaja-with-opts format)
response (handler request)
ret (if (not (instance? java.io.ByteArrayInputStream (:body response)))
(update response :body #(encoder %))
response)]
(let [format (:content-type request)
encoder (when format (m/encoder muuntaja-with-opts format))
response (handler request)
should-encode? (and encoder
(not (instance? java.io.ByteArrayInputStream (:body response))))
ret (if should-encode? (update response :body #(encoder %)) response)]
ret))))

(defn patch-swagger-json [handler]
Expand Down
12 changes: 11 additions & 1 deletion test/datahike/test/http/server_test.clj
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
(ns datahike.test.http.server-test
(:require
[babashka.http-client :as http]
[clojure.string :as str]
[clojure.test :as t :refer [is deftest testing]]
[datahike.http.server :refer [start-server stop-server]]
[datahike.http.client :as api]))
Expand Down Expand Up @@ -82,7 +84,15 @@

test-db @conn
_ (is (= (api/q query test-db)
#{["Peter" 42]}))]
#{["Peter" 42]}))

swagger-response (http/request {:method :get
:uri (str (:url client-config) "/swagger.json")
:as :stream})
swagger-body (slurp (:body swagger-response))
_ (is (= 200 (:status swagger-response)))
_ (is (str/includes? swagger-body "\"swagger\":\"2.0\""))
_ (is (str/includes? swagger-body "\"paths\""))]

(is (nil? (api/release conn)))
(is (nil? (api/delete-database new-config)))
Expand Down