File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed
Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change 11(ns duct.middleware.web
2- (:require [duct.logger :as logger]
2+ (:require [clojure.java.io :as io]
3+ [duct.logger :as logger]
34 [integrant.core :as ig]
45 [ring.middleware.defaults :refer [wrap-defaults]]
56 [ring.middleware.stacktrace :refer [wrap-stacktrace]]
7475(defmethod ig /init-key ::hide-errors [_ {:keys [error-handler]}]
7576 #(wrap-hide-errors % error-handler))
7677
78+ (defn- ensure-dirs-exist [dirs]
79+ (doseq [dir dirs :let [f (io/file dir)] :when (not (.exists f))]
80+ (.mkdirs f)))
81+
7782(defmethod ig /init-key ::defaults [_ defaults ]
83+ (ensure-dirs-exist (-> defaults :static :files ))
7884 #(wrap-defaults % defaults ))
7985
8086(defmethod ig /init-key ::webjars [_ {:keys [path] :or {path " /assets" }}]
Original file line number Diff line number Diff line change 33 [duct.logger :as logger]
44 [duct.middleware.web :refer :all ]
55 [integrant.core :as ig]
6- [ring.mock.request :as mock]))
6+ [ring.mock.request :as mock])
7+ (:import [java.nio.file Files]
8+ [java.nio.file.attribute FileAttribute]))
79
810(defrecord TestLogger [logs]
911 logger /Logger
8082 (handler (mock/request :get " /" ) respond raise)
8183 (is (not (realized? raise)))
8284 (is (= @respond response))))))
85+
86+ (deftest test-wrap-defaults
87+ (let [attrs (make-array FileAttribute 0 )
88+ tempdir (Files/createTempDirectory " duct" attrs)]
89+ (Files/delete tempdir)
90+ (ig/init-key :duct.middleware.web/defaults
91+ {:static {:files [(str tempdir)]}})
92+ (is (.exists (.toFile tempdir)))
93+ (Files/deleteIfExists tempdir)))
You can’t perform that action at this time.
0 commit comments