mirror of
https://github.com/penpot/penpot.git
synced 2025-12-11 22:14:05 +01:00
Merge pull request #7366 from penpot/niwinz-develop-page-data-type
⚡ Add several enhancements for reduce workspace file load time
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
[frontend-tests.tokens.token-form-test]
|
||||
[frontend-tests.util-range-tree-test]
|
||||
[frontend-tests.util-simple-math-test]
|
||||
[frontend-tests.util-snap-data-test]))
|
||||
[frontend-tests.worker-snap-test]))
|
||||
|
||||
(enable-console-print!)
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
(defn init
|
||||
[]
|
||||
(t/run-tests
|
||||
'frontend-tests.basic-shapes-test
|
||||
'frontend-tests.data.workspace-colors-test
|
||||
'frontend-tests.helpers-shapes-test
|
||||
'frontend-tests.logic.comp-remove-swap-slots-test
|
||||
'frontend-tests.logic.components-and-tokens
|
||||
@@ -38,13 +40,11 @@
|
||||
'frontend-tests.logic.groups-test
|
||||
'frontend-tests.logic.pasting-in-containers-test
|
||||
'frontend-tests.plugins.context-shapes-test
|
||||
'frontend-tests.util-range-tree-test
|
||||
'frontend-tests.util-snap-data-test
|
||||
'frontend-tests.util-simple-math-test
|
||||
'frontend-tests.basic-shapes-test
|
||||
'frontend-tests.data.workspace-colors-test
|
||||
'frontend-tests.tokens.import-export-test
|
||||
'frontend-tests.tokens.logic.token-actions-test
|
||||
'frontend-tests.tokens.logic.token-data-test
|
||||
'frontend-tests.tokens.import-export-test
|
||||
'frontend-tests.tokens.style-dictionary-test
|
||||
'frontend-tests.tokens.token-form-test))
|
||||
'frontend-tests.tokens.token-form-test
|
||||
'frontend-tests.util-range-tree-test
|
||||
'frontend-tests.util-simple-math-test
|
||||
'frontend-tests.worker-snap-test))
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
;;
|
||||
;; Copyright (c) KALEIDOS INC
|
||||
|
||||
(ns frontend-tests.util-snap-data-test
|
||||
(ns frontend-tests.worker-snap-test
|
||||
(:require
|
||||
[app.common.files.builder :as fb]
|
||||
[app.common.types.shape :as cts]
|
||||
[app.common.uuid :as uuid]
|
||||
[app.util.snap-data :as sd]
|
||||
[app.worker.snap :as snap]
|
||||
[cljs.pprint :refer [pprint]]
|
||||
[cljs.test :as t :include-macros true]))
|
||||
|
||||
@@ -21,9 +21,9 @@
|
||||
(fn []
|
||||
(uuid/custom 123456789 (swap! counter inc)))))
|
||||
|
||||
(t/deftest test-create-index
|
||||
(t/deftest create-index
|
||||
(t/testing "Create empty data"
|
||||
(let [data (sd/make-snap-data)]
|
||||
(let [data (snap/make-snap-data)]
|
||||
(t/is (some? data))))
|
||||
|
||||
(t/testing "Add empty page (only root-frame)"
|
||||
@@ -32,8 +32,8 @@
|
||||
(fb/add-page {:name "Page 1"})
|
||||
(fb/get-current-page))
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))]
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))]
|
||||
(t/is (some? data))))
|
||||
|
||||
(t/testing "Create simple shape on root"
|
||||
@@ -48,10 +48,10 @@
|
||||
:height 100}))
|
||||
page (fb/get-current-page state)
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
result-x (sd/query data (:id page) uuid/zero :x [0 100])]
|
||||
result-x (snap/query data (:id page) uuid/zero :x [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
|
||||
@@ -82,11 +82,11 @@
|
||||
page (fb/get-current-page state)
|
||||
|
||||
;; frame-id (::fb/last-id file)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-zero-x) 3))
|
||||
@@ -116,11 +116,11 @@
|
||||
|
||||
page (fb/get-current-page state)
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-zero-x) 3))
|
||||
@@ -137,13 +137,13 @@
|
||||
frame-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (sd/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (sd/query data (:id page) frame-id :y [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (snap/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (snap/query data (:id page) frame-id :y [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
;; We can snap in the root
|
||||
@@ -168,13 +168,13 @@
|
||||
|
||||
page (fb/get-current-page state)
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (sd/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (sd/query data (:id page) frame-id :y [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (snap/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (snap/query data (:id page) frame-id :y [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
;; We can snap in the root
|
||||
@@ -185,7 +185,7 @@
|
||||
(t/is (= (count result-frame-x) 1))
|
||||
(t/is (= (count result-frame-y) 0)))))
|
||||
|
||||
(t/deftest test-update-index
|
||||
(t/deftest update-index
|
||||
(t/testing "Create frame on root and then remove it."
|
||||
(let [state (-> (fb/create-state)
|
||||
(fb/add-file {:name "Test"})
|
||||
@@ -200,17 +200,17 @@
|
||||
shape-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
state (-> state
|
||||
(fb/delete-shape shape-id))
|
||||
|
||||
new-page (fb/get-current-page state)
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-y (sd/query data (:id page) uuid/zero :y [0 100])]
|
||||
result-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-y (snap/query data (:id page) uuid/zero :y [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-x) 0))
|
||||
@@ -231,16 +231,16 @@
|
||||
page (fb/get-current-page state)
|
||||
|
||||
;; frame-id (::fb/last-id state)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
state (fb/delete-shape state shape-id)
|
||||
|
||||
new-page (fb/get-current-page state)
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-y (sd/query data (:id page) uuid/zero :y [0 100])]
|
||||
result-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-y (snap/query data (:id page) uuid/zero :y [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-x) 0))
|
||||
@@ -263,16 +263,16 @@
|
||||
state (fb/close-board state)
|
||||
|
||||
page (fb/get-current-page state)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
state (fb/delete-shape state shape-id)
|
||||
new-page (fb/get-current-page state)
|
||||
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-zero-x) 3))
|
||||
@@ -291,18 +291,18 @@
|
||||
|
||||
frame-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
new-page (-> (fb/delete-guide state guide-id)
|
||||
(fb/get-current-page))
|
||||
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (sd/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (sd/query data (:id page) frame-id :y [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (snap/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (snap/query data (:id page) frame-id :y [0 100])]
|
||||
|
||||
(t/is (some? data))
|
||||
;; We can snap in the root
|
||||
@@ -325,17 +325,17 @@
|
||||
guide-id (::fb/last-id file)
|
||||
|
||||
page (fb/get-current-page file)
|
||||
data (-> (sd/make-snap-data) (sd/add-page page))
|
||||
data (-> (snap/make-snap-data) (snap/add-page page))
|
||||
|
||||
new-page (-> (fb/delete-guide file guide-id)
|
||||
(fb/get-current-page))
|
||||
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (sd/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (sd/query data (:id page) frame-id :y [0 100])]
|
||||
result-zero-x (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y (snap/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y (snap/query data (:id page) frame-id :y [0 100])]
|
||||
(t/is (some? data))
|
||||
;; We can snap in the root
|
||||
(t/is (= (count result-zero-x) 0))
|
||||
@@ -358,8 +358,8 @@
|
||||
|
||||
frame-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
state (fb/update-shape state frame-id
|
||||
(fn [shape]
|
||||
@@ -370,12 +370,12 @@
|
||||
|
||||
|
||||
new-page (fb/get-current-page state)
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x-1 (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-zero-x-2 (sd/query data (:id page) uuid/zero :x [200 300])
|
||||
result-frame-x-2 (sd/query data (:id page) frame-id :x [200 300])]
|
||||
result-zero-x-1 (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-frame-x-1 (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-zero-x-2 (snap/query data (:id page) uuid/zero :x [200 300])
|
||||
result-frame-x-2 (snap/query data (:id page) frame-id :x [200 300])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-zero-x-1) 0))
|
||||
@@ -396,8 +396,8 @@
|
||||
|
||||
shape-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
data (-> (sd/make-snap-data)
|
||||
(sd/add-page page))
|
||||
data (-> (snap/make-snap-data)
|
||||
(snap/add-page page))
|
||||
|
||||
state (fb/update-shape state shape-id
|
||||
(fn [shape]
|
||||
@@ -408,10 +408,10 @@
|
||||
|
||||
new-page (fb/get-current-page state)
|
||||
;; FIXME: update
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-x-2 (sd/query data (:id page) uuid/zero :x [200 300])]
|
||||
result-zero-x-1 (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-x-2 (snap/query data (:id page) uuid/zero :x [200 300])]
|
||||
|
||||
(t/is (some? data))
|
||||
(t/is (= (count result-zero-x-1) 0))
|
||||
@@ -432,22 +432,22 @@
|
||||
|
||||
frame-id (::fb/last-id state)
|
||||
page (fb/get-current-page state)
|
||||
data (-> (sd/make-snap-data) (sd/add-page page))
|
||||
data (-> (snap/make-snap-data) (snap/add-page page))
|
||||
|
||||
new-page (-> (fb/update-guide state (assoc guide :position 150))
|
||||
(fb/get-current-page))
|
||||
|
||||
data (sd/update-page data page new-page)
|
||||
data (snap/update-page data page new-page)
|
||||
|
||||
result-zero-x-1 (sd/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y-1 (sd/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x-1 (sd/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y-1 (sd/query data (:id page) frame-id :y [0 100])
|
||||
result-zero-x-1 (snap/query data (:id page) uuid/zero :x [0 100])
|
||||
result-zero-y-1 (snap/query data (:id page) uuid/zero :y [0 100])
|
||||
result-frame-x-1 (snap/query data (:id page) frame-id :x [0 100])
|
||||
result-frame-y-1 (snap/query data (:id page) frame-id :y [0 100])
|
||||
|
||||
result-zero-x-2 (sd/query data (:id page) uuid/zero :x [0 200])
|
||||
result-zero-y-2 (sd/query data (:id page) uuid/zero :y [0 200])
|
||||
result-frame-x-2 (sd/query data (:id page) frame-id :x [0 200])
|
||||
result-frame-y-2 (sd/query data (:id page) frame-id :y [0 200])]
|
||||
result-zero-x-2 (snap/query data (:id page) uuid/zero :x [0 200])
|
||||
result-zero-y-2 (snap/query data (:id page) uuid/zero :y [0 200])
|
||||
result-frame-x-2 (snap/query data (:id page) frame-id :x [0 200])
|
||||
result-frame-y-2 (snap/query data (:id page) frame-id :y [0 200])]
|
||||
|
||||
(t/is (some? data))
|
||||
|
||||
Reference in New Issue
Block a user