mirror of
https://github.com/penpot/penpot.git
synced 2025-08-03 01:48:31 +02:00
Refactor degroup-shape impl.
In order to fix many corner cases and make the code more easy to understand. Related to #72.
This commit is contained in:
parent
1835b496d1
commit
13e02283d8
2 changed files with 81 additions and 64 deletions
|
@ -430,7 +430,7 @@
|
|||
|
||||
;; degroup a single group
|
||||
|
||||
(t/deftest degroup-shapes-1
|
||||
(t/deftest degroup-shapes-1-0
|
||||
(let [initial {:pages {1 {:id 1 :shapes [3]}}
|
||||
:shapes {1 {:id 1 :page 1 :group 3}
|
||||
2 {:id 2 :page 1 :group 3}
|
||||
|
@ -444,6 +444,23 @@
|
|||
;; (pprint result)
|
||||
(t/is (= result expected)))))
|
||||
|
||||
;; degroup single shape from group
|
||||
|
||||
(t/deftest degroup-shapes-1-1
|
||||
(let [initial {:pages {1 {:id 1 :shapes [3]}}
|
||||
:shapes {1 {:id 1 :page 1 :group 3}
|
||||
2 {:id 2 :page 1 :group 3}
|
||||
3 {:id 3 :page 1 :type :group :items [1 2]}}}
|
||||
expected {:workspace {:selected #{1}}
|
||||
:pages {1 {:id 1 :shapes [1 3]}}
|
||||
:shapes {1 {:id 1 :page 1}
|
||||
2 {:id 2 :page 1 :group 3}
|
||||
3 {:id 3 :page 1 :type :group :items [2]}}}]
|
||||
(let [result (impl/degroup-shapes initial [1] 1)]
|
||||
;; (pprint expected)
|
||||
;; (pprint result)
|
||||
(t/is (= result expected)))))
|
||||
|
||||
;; degroup group inside a group
|
||||
|
||||
(t/deftest degroup-shapes-2
|
||||
|
@ -477,35 +494,3 @@
|
|||
;; (pprint expected)
|
||||
;; (pprint result)
|
||||
(t/is (= result expected)))))
|
||||
|
||||
;; degroup multiple groups nested (child first)
|
||||
|
||||
(t/deftest degroup-shapes-4
|
||||
(let [initial {:pages {1 {:id 1 :shapes [1]}}
|
||||
:shapes {1 {:id 1 :page 1 :type :group :items [2]}
|
||||
2 {:id 2 :page 1 :type :group :items [3] :group 1}
|
||||
3 {:id 3 :page 1 :group 2}}}
|
||||
|
||||
expected {:pages {1 {:id 1, :shapes [3]}},
|
||||
:shapes {3 {:id 3, :page 1}},
|
||||
:workspace {:selected #{3}}}]
|
||||
(let [result (impl/degroup-shapes initial [2 1] 1)]
|
||||
;; (pprint expected)
|
||||
;; (pprint result)
|
||||
(t/is (= result expected)))))
|
||||
|
||||
;; degroup multiple groups nested (parent first)
|
||||
|
||||
(t/deftest degroup-shapes-5
|
||||
(let [initial {:pages {1 {:id 1 :shapes [1]}}
|
||||
:shapes {1 {:id 1 :page 1 :type :group :items [2]}
|
||||
2 {:id 2 :page 1 :type :group :items [3] :group 1}
|
||||
3 {:id 3 :page 1 :group 2}}}
|
||||
|
||||
expected {:pages {1 {:id 1, :shapes [3]}},
|
||||
:shapes {3 {:id 3, :page 1}},
|
||||
:workspace {:selected #{3}}}]
|
||||
(let [result (impl/degroup-shapes initial [1 2] 1)]
|
||||
;; (pprint expected)
|
||||
;; (pprint result)
|
||||
(t/is (= result expected)))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue