mirror of
https://github.com/penpot/penpot.git
synced 2025-01-10 08:50:57 -05:00
42 lines
1.7 KiB
Clojure
42 lines
1.7 KiB
Clojure
(ns uxbox.data.workspace-tests
|
|
(:require [cljs.test :as t :include-macros true]
|
|
[cljs.pprint :refer (pprint)]
|
|
[uxbox.rstore :as rs]
|
|
[uxbox.data.workspace :as dw]))
|
|
|
|
;; delete shape: delete from page
|
|
(t/deftest delete-shape-test1
|
|
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 3 4]}}
|
|
:shapes-by-id {1 {:id 1 :page 1
|
|
:type :builtin/group
|
|
:items [2]}
|
|
2 {:id 2 :page 1 :group 1}
|
|
3 {:id 3 :page 1}
|
|
4 {:id 4 :page 1}}}
|
|
event (dw/delete-shape 4)
|
|
expected (-> initial
|
|
(assoc-in [:pages-by-id 1 :shapes] [1 3])
|
|
(update-in [:shapes-by-id] dissoc 4))
|
|
result (rs/-apply-update event initial)]
|
|
;; (pprint expected)
|
|
;; (pprint result)
|
|
(t/is (= result expected))))
|
|
|
|
;; delete shape: delete from group
|
|
(t/deftest delete-shape-test2
|
|
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 3 4]}}
|
|
:shapes-by-id {1 {:id 1 :page 1
|
|
:type :builtin/group
|
|
:items [2]}
|
|
2 {:id 2 :page 1 :group 1}
|
|
3 {:id 3 :page 1}
|
|
4 {:id 4 :page 1}}}
|
|
event (dw/delete-shape 2)
|
|
expected (-> initial
|
|
(assoc-in [:pages-by-id 1 :shapes] [3 4])
|
|
(update-in [:shapes-by-id] dissoc 2)
|
|
(update-in [:shapes-by-id] dissoc 1))
|
|
result (rs/-apply-update event initial)]
|
|
;; (pprint expected)
|
|
;; (pprint result)
|
|
(t/is (= result expected))))
|