test(backend): fix image create/upload test

This commit is contained in:
Andrey Antukh 2019-06-15 18:46:57 +02:00
parent af8d19ab60
commit 4291c80259
2 changed files with 39 additions and 30 deletions

View file

@ -90,26 +90,31 @@
;; :opt-un [::us/id ::collection])) ;; :opt-un [::us/id ::collection]))
(defn create-image (defn create-image
[{user :identity data :data}] {:parameters {:multipart {:upload [st/required]
#_(let [{:keys [file id width height :id [st/uuid-str]
mimetype collection]} (us/conform ::create-image data) :width [st/required st/integer-str]
id (or id (uuid/random)) :height [st/required st/integer-str]
filename (fs/name file) :mimetype [st/required st/string]
:collection [st/uuid-str]}}}
[{:keys [user parameters] :as ctx}]
(prn "create-image" (:body-params ctx) (:multipart-params ctx))
(let [params (get parameters :multipart)
upload (get params :upload)
filename (fs/name (:filename upload))
tempfile (:tempfile upload)
storage media/images-storage] storage media/images-storage]
(letfn [(persist-image-entry [path] (letfn [(persist-image-entry [path]
(sv/novelty {:id id (let [message (select-keys params [:id :width :height :collection :mimetype])]
:type :create-image (sv/novelty (assoc message
:user user :id (or (:id params) (uuid/random))
:width width :type :create-image
:height height :name filename
:mimetype mimetype :path (str path)
:collection collection :user user))))
:name filename
:path (str path)}))
(create-response [entry] (create-response [entry]
(let [loc (str "/api/library/images/" (:id entry))] (let [loc (str "/api/library/images/" (:id entry))]
(http/created loc (rsp entry))))] (http/created loc entry)))]
(->> (st/save storage filename file) (->> (ds/save storage filename tempfile)
(p/mapcat persist-image-entry) (p/mapcat persist-image-entry)
(p/map populate-thumbnails) (p/map populate-thumbnails)
(p/map populate-urls) (p/map populate-urls)

View file

@ -72,20 +72,24 @@
result (sc/fetch conn sqlv)] result (sc/fetch conn sqlv)]
(t/is (empty? result)))))))) (t/is (empty? result))))))))
;; ;; (t/deftest test-http-create-image (t/deftest test-http-create-image
;; ;; (with-open [conn (db/connection)] (with-open [conn (db/connection)]
;; ;; (let [user (th/create-user conn 1)] (let [user (th/create-user conn 1)]
;; ;; (with-server {:handler (uft/routes)} (th/with-server {:handler uapi/app}
;; ;; (let [uri (str th/+base-url+ "/api/library/images") (let [uri (str th/+base-url+ "/api/library/images")
;; ;; params [{:name "sample.jpg" parts [{:name "sample.jpg"
;; ;; :part-name "file" :part-name "upload"
;; ;; :content (io/input-stream :content (io/input-stream
;; ;; (io/resource "uxbox/tests/_files/sample.jpg"))}] (io/resource "uxbox/tests/_files/sample.jpg"))}
;; ;; [status data] (th/http-multipart user uri params)] {:part-name "user" :content (str (:id user))}
;; ;; ;; (println "RESPONSE:" status data) {:part-name "width" :content "100"}
;; ;; (t/is (= 201 status)) {:part-name "height" :content "100"}
;; ;; (t/is (= (:user data) (:id user))) {:part-name "mimetype" :content "image/png"}]
;; ;; (t/is (= (:name data) "sample.jpg"))))))) [status data] (th/http-multipart user uri parts)]
;; (println "RESPONSE:" status data)
(t/is (= 201 status))
(t/is (= (:user data) (:id user)))
(t/is (= (:name data) "sample.jpg")))))))
(t/deftest test-http-update-image (t/deftest test-http-update-image
(with-open [conn (db/connection)] (with-open [conn (db/connection)]