Add delete shape tests.

And general test format change.
This commit is contained in:
Andrey Antukh 2016-02-03 17:19:42 +02:00
parent aaf27ed6a8
commit 615aeea576

View file

@ -4,8 +4,45 @@
[uxbox.rstore :as rs]
[uxbox.data.workspace :as dw]))
(t/deftest drop-shape-test
(t/testing "case 1: move shape before other shape"
;; 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))))
;; drop shape: move shape before other shape
(t/deftest drop-shape-test1
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 2 3]}}
:shapes-by-id {1 {:id 1 :page 1}
2 {:id 2 :page 1}
@ -18,7 +55,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 2: move shape after other shape"
;; drop shape: move shape after other shape
(t/deftest drop-shape-test2
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 2 3]}}
:shapes-by-id {1 {:id 1 :page 1}
2 {:id 2 :page 1}
@ -29,7 +67,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 3: move shape before other shape that is part of group."
;; drop shape: move shape before other shape that is part of group.
(t/deftest drop-shape-test3
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 3 4]}}
:shapes-by-id {1 {:id 1 :page 1
:type :builtin/group
@ -46,7 +85,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 4: move shape inside group"
;; drop shape: move shape inside group
(t/deftest drop-shape-test4
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 3 4]}}
:shapes-by-id {1 {:id 1 :page 1
:type :builtin/group
@ -65,7 +105,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 5: move shape outside of group"
;; drop shape: move shape outside of group
(t/deftest drop-shape-test5
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 4]}}
:shapes-by-id {1 {:id 1 :page 1
:type :builtin/group
@ -82,7 +123,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 6: move group inside group"
;; drop shape: move group inside group
(t/deftest drop-shape-test6
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 2]}}
:shapes-by-id {1 {:id 1 :page 1
:type :builtin/group
@ -104,7 +146,8 @@
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
(t/testing "case 7: move group outside group"
;; drop shape: move group outside group
(t/deftest drop-shape-test7
(let [initial {:pages-by-id {1 {:id 1 :shapes [1 3]}}
:shapes-by-id {1 {:id 1 :page 1
:type :builtin/group
@ -125,6 +168,5 @@
;; (pprint result)
(t/is (= result expected))
(t/is (vector? (get-in result [:pages-by-id 1 :shapes])))))
)