mirror of
https://github.com/penpot/penpot.git
synced 2025-06-26 02:27:00 +02:00
🐛 Fix db table tagged thumbnails
This commit is contained in:
parent
3448259c60
commit
7951350762
8 changed files with 123 additions and 299 deletions
|
@ -81,7 +81,7 @@
|
|||
(t/is (nil? (:error out)))
|
||||
(t/is (nil? (:result out))))
|
||||
|
||||
(let [[row1 row2 :as rows] (th/db-query :file-object-thumbnail
|
||||
(let [[row1 row2 :as rows] (th/db-query :file-tagged-object-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
|
||||
|
@ -113,7 +113,7 @@
|
|||
(t/is (= 1 (:processed result))))
|
||||
|
||||
;; check if row2 related thumbnail row still exists
|
||||
(let [[row :as rows] (th/db-query :file-object-thumbnail
|
||||
(let [[row :as rows] (th/db-query :file-tagged-object-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
(t/is (= 1 (count rows)))
|
||||
|
@ -143,7 +143,6 @@
|
|||
|
||||
)))
|
||||
|
||||
|
||||
(t/deftest create-file-thumbnail
|
||||
(let [storage (::sto/storage th/*system*)
|
||||
profile (th/create-profile* 1)
|
||||
|
@ -152,14 +151,7 @@
|
|||
:is-shared false
|
||||
:revn 3})
|
||||
|
||||
data1 {::th/type :upsert-file-thumbnail
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)
|
||||
:props {}
|
||||
:revn 1
|
||||
:data "data:base64,1234123124"}
|
||||
|
||||
data2 {::th/type :create-file-thumbnail
|
||||
data1 {::th/type :create-file-thumbnail
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)
|
||||
:revn 2
|
||||
|
@ -168,7 +160,7 @@
|
|||
:path (th/tempfile "backend_tests/test_files/sample2.jpg")
|
||||
:mtype "image/jpeg"}}
|
||||
|
||||
data3 {::th/type :create-file-thumbnail
|
||||
data2 {::th/type :create-file-thumbnail
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)
|
||||
:revn 3
|
||||
|
@ -178,43 +170,35 @@
|
|||
:mtype "image/jpeg"}}]
|
||||
|
||||
(let [out (th/command! data1)]
|
||||
(t/is (nil? (:error out)))
|
||||
(t/is (nil? (:result out))))
|
||||
|
||||
(let [out (th/command! data2)]
|
||||
;; (th/print-result! out)
|
||||
(t/is (nil? (:error out)))
|
||||
(t/is (contains? (:result out) :uri)))
|
||||
|
||||
(let [out (th/command! data3)]
|
||||
(let [out (th/command! data2)]
|
||||
(t/is (nil? (:error out)))
|
||||
(t/is (contains? (:result out) :uri)))
|
||||
|
||||
(let [[row1 row2 row3 :as rows] (th/db-query :file-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
(t/is (= 3 (count rows)))
|
||||
(let [[row1 row2 :as rows] (th/db-query :file-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
(t/is (= 2 (count rows)))
|
||||
|
||||
(t/is (= (:file-id data1) (:file-id row1)))
|
||||
(t/is (= (:revn data1) (:revn row1)))
|
||||
(t/is (nil? (:media-id row1)))
|
||||
(t/is (uuid? (:media-id row1)))
|
||||
|
||||
(t/is (= (:file-id data2) (:file-id row2)))
|
||||
(t/is (= (:revn data2) (:revn row2)))
|
||||
(t/is (uuid? (:media-id row2)))
|
||||
|
||||
(t/is (= (:file-id data3) (:file-id row3)))
|
||||
(t/is (= (:revn data3) (:revn row3)))
|
||||
(t/is (uuid? (:media-id row3)))
|
||||
|
||||
(let [sobject (sto/get-object storage (:media-id row2))
|
||||
(let [sobject (sto/get-object storage (:media-id row1))
|
||||
mobject (meta sobject)]
|
||||
(t/is (= "blake2b:05870e3f8ee885841ee3799924d80805179ab57e6fde84a605d1068fd3138de9" (:hash mobject)))
|
||||
(t/is (= "file-thumbnail" (:bucket mobject)))
|
||||
(t/is (= "image/jpeg" (:content-type mobject)))
|
||||
(t/is (= 7923 (:size sobject))))
|
||||
|
||||
(let [sobject (sto/get-object storage (:media-id row3))
|
||||
(let [sobject (sto/get-object storage (:media-id row2))
|
||||
mobject (meta sobject)]
|
||||
(t/is (= "blake2b:4fdb63b8f3ffc81256ea79f13e53f366723b188554b5afed91b20897c14a1a8e" (:hash mobject)))
|
||||
(t/is (= "file-thumbnail" (:bucket mobject)))
|
||||
|
@ -226,21 +210,20 @@
|
|||
(let [result (th/run-task! :file-gc {:min-age (dt/duration 0)})]
|
||||
(t/is (= 1 (:processed result))))
|
||||
|
||||
;; check if row2 related thumbnail row still exists
|
||||
;; check if row1 related thumbnail row still exists
|
||||
(let [[row :as rows] (th/db-query :file-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
(t/is (= 1 (count rows)))
|
||||
(t/is (= (:file-id data2) (:file-id row)))
|
||||
(t/is (= (:object-id data2) (:object-id row)))
|
||||
(t/is (uuid? (:media-id row2))))
|
||||
(t/is (= (:file-id data1) (:file-id row)))
|
||||
(t/is (= (:object-id data1) (:object-id row)))
|
||||
(t/is (uuid? (:media-id row1))))
|
||||
|
||||
;; Check if storage objects still exists after file-gc
|
||||
(t/is (nil? (sto/get-object storage (:media-id row1))))
|
||||
(t/is (nil? (sto/get-object storage (:media-id row2))))
|
||||
(t/is (some? (sto/get-object storage (:media-id row3))))
|
||||
(t/is (some? (sto/get-object storage (:media-id row2))))
|
||||
|
||||
(let [row (th/db-get :storage-object {:id (:media-id row2)} {::db/remove-deleted? false})]
|
||||
(let [row (th/db-get :storage-object {:id (:media-id row1)} {::db/remove-deleted? false})]
|
||||
(t/is (some? (:deleted-at row))))
|
||||
|
||||
;; Run the storage gc deleted task, it should permanently delete
|
||||
|
@ -248,11 +231,7 @@
|
|||
(let [result (th/run-task! :storage-gc-deleted {:min-age (dt/duration 0)})]
|
||||
(t/is (= 1 (:deleted result))))
|
||||
|
||||
;; check that storage object is still exists but is marked as deleted
|
||||
(let [row (th/db-get :storage-object {:id (:media-id row1)} {::db/remove-deleted? false})]
|
||||
(t/is (nil? row)))
|
||||
|
||||
(t/is (some? (sto/get-object storage (:media-id row3)))))
|
||||
(t/is (some? (sto/get-object storage (:media-id row2)))))
|
||||
|
||||
|
||||
))
|
||||
|
@ -264,13 +243,7 @@
|
|||
:project-id (:default-project-id profile)
|
||||
:is-shared false})
|
||||
|
||||
data1 {::th/type :upsert-file-object-thumbnail
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)
|
||||
:object-id "test-key-1"
|
||||
:data "data:base64,1234123124"}
|
||||
|
||||
data2 {::th/type :create-file-object-thumbnail
|
||||
data {::th/type :create-file-object-thumbnail
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)
|
||||
:object-id "test-key-2"
|
||||
|
@ -279,36 +252,27 @@
|
|||
:path (th/tempfile "backend_tests/test_files/sample2.jpg")
|
||||
:mtype "image/jpeg"}}]
|
||||
|
||||
(let [out (th/command! data1)]
|
||||
(let [out (th/command! data)]
|
||||
(t/is (nil? (:error out)))
|
||||
(t/is (nil? (:result out))))
|
||||
|
||||
(let [out (th/command! data2)]
|
||||
(t/is (nil? (:error out)))
|
||||
(t/is (nil? (:result out))))
|
||||
|
||||
(let [[row1 row2 :as rows] (th/db-query :file-object-thumbnail
|
||||
(let [[row :as rows] (th/db-query :file-tagged-object-thumbnail
|
||||
{:file-id (:id file)}
|
||||
{:order-by [[:created-at :asc]]})]
|
||||
(t/is (= 2 (count rows)))
|
||||
|
||||
(t/is (= (:file-id data1) (:file-id row1)))
|
||||
(t/is (= (:object-id data1) (:object-id row1)))
|
||||
(t/is (nil? (:media-id row1)))
|
||||
(t/is (string? (:data row1)))
|
||||
|
||||
(t/is (= (:file-id data2) (:file-id row2)))
|
||||
(t/is (= (:object-id data2) (:object-id row2)))
|
||||
(t/is (uuid? (:media-id row2))))
|
||||
(t/is (= 1 (count rows)))
|
||||
|
||||
(t/is (= (:file-id data) (:file-id row)))
|
||||
(t/is (= (:object-id data) (:object-id row)))
|
||||
(t/is (uuid? (:media-id row))))
|
||||
|
||||
(let [params {::th/type :get-file-object-thumbnails
|
||||
::rpc/profile-id (:id profile)
|
||||
:file-id (:id file)}
|
||||
out (th/command! params)]
|
||||
|
||||
;; (th/print-result! out)
|
||||
|
||||
(let [result (:result out)]
|
||||
(t/is (contains? result "test-key-1"))
|
||||
(t/is (contains? result "test-key-2"))))))
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue