Skip to content

Commit 14038d8

Browse files
committed
add tests
1 parent 2e75b21 commit 14038d8

File tree

3 files changed

+115
-5
lines changed

3 files changed

+115
-5
lines changed

deps.edn

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
metosin/malli {:mvn/version "0.16.4"}
1414
net.mikera/core.matrix {:mvn/version "0.63.0"}
1515
org.clj-commons/hickory {:mvn/version "0.7.5"}
16-
org.slf4j/slf4j-simple {:mvn/version "2.0.16"}
16+
org.slf4j/slf4j-nop {:mvn/version "2.0.16"}
1717
re-frame/re-frame {:mvn/version "1.4.3"}
1818
re-pressed/re-pressed {:mvn/version "0.3.2"}
1919
reagent/reagent {:mvn/version "1.2.0"}

test/document_test.cljs

+42
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,45 @@
1717
(are [v sub] (= v sub)
1818
"• Untitled-1 - Repath Studio" @(rf/subscribe [::s/title-bar])
1919
false @(rf/subscribe [::s/active-saved]))))
20+
21+
(deftest close
22+
(rf-test/run-test-sync
23+
(rf/dispatch [::app.e/initialize-db])
24+
(rf/dispatch [::e/init])
25+
26+
(rf/dispatch [::e/close (:id @(rf/subscribe [::s/active]) false)])
27+
(is (not @(rf/subscribe [::s/active])))))
28+
29+
(deftest colors
30+
(rf-test/run-test-sync
31+
(rf/dispatch [::app.e/initialize-db])
32+
(rf/dispatch [::e/init])
33+
34+
(let [fill (rf/subscribe [::s/fill])
35+
stroke (rf/subscribe [::s/stroke])]
36+
(is (= @fill "white"))
37+
(is (= @stroke "black"))
38+
39+
(rf/dispatch [::e/swap-colors])
40+
(is (= @fill "black"))
41+
(is (= @stroke "white"))
42+
43+
(rf/dispatch [::e/set-attr :fill "red"])
44+
(is (= @fill "red")))))
45+
46+
(deftest filters
47+
(rf-test/run-test-sync
48+
(rf/dispatch [::app.e/initialize-db])
49+
(rf/dispatch [::e/init])
50+
51+
(let [active-filter (rf/subscribe [::s/filter])]
52+
(is (not @active-filter))
53+
54+
(rf/dispatch [::e/toggle-filter :blur])
55+
(is (= @active-filter :blur))
56+
57+
(rf/dispatch [::e/toggle-filter :deuteranopia])
58+
(is (= @active-filter :deuteranopia))
59+
60+
(rf/dispatch [::e/toggle-filter :deuteranopia])
61+
(is (not @active-filter)))))

test/element_test.cljs

+72-4
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,84 @@
3030
(is (empty? @selected))
3131

3232
(rf/dispatch [::e/select-all])
33-
(is (not-empty @selected))
33+
(is (= (count @selected) 1))
3434

3535
(rf/dispatch [::e/deselect-all])
3636
(is (empty? @selected))
3737

3838
(rf/dispatch [::e/add {:tag :rect
39-
:attrs {:x 0 :y 0 :width 100 :height 100}}])
40-
(is :rect (-> @selected first :tag))
39+
:attrs {:width 100 :height 100}}])
40+
(is (= :rect (-> @selected first :tag)))
4141

4242
(rf/dispatch [::e/add {:tag :rect
43-
:attrs {:x 0 :y 0 :width 100 :height 100}}])
43+
:attrs {:width 100 :height 100}}])
4444
(rf/dispatch [::e/select-same-tags])
4545
(is (= (count @selected) 2)))))
46+
47+
(deftest lock
48+
(rf-test/run-test-sync
49+
(rf/dispatch [::app.e/initialize-db])
50+
(rf/dispatch [::document.e/init])
51+
52+
(let [selected (rf/subscribe [::s/selected])]
53+
(rf/dispatch [::e/add {:tag :rect
54+
:attrs {:width 100 :height 100}}])
55+
(is (not (-> @selected first :locked)))
56+
57+
(rf/dispatch [::e/lock])
58+
(is (-> @selected first :locked))
59+
60+
(rf/dispatch [::e/unlock])
61+
(is (not (-> @selected first :locked))))))
62+
63+
(deftest attribute
64+
(rf-test/run-test-sync
65+
(rf/dispatch [::app.e/initialize-db])
66+
(rf/dispatch [::document.e/init])
67+
68+
(let [selected (rf/subscribe [::s/selected])]
69+
(rf/dispatch [::e/add {:tag :rect
70+
:attrs {:width 100 :height 100 :fill "white"}}])
71+
(is (= (-> @selected first :attrs :fill) "white"))
72+
73+
(rf/dispatch [::e/set-attr :fill "red"])
74+
(is (= (-> @selected first :attrs :fill) "red"))
75+
76+
(rf/dispatch [::e/preview-attr :fill "yellow"])
77+
(is (= (-> @selected first :attrs :fill) "yellow"))
78+
79+
(rf/dispatch [::e/remove-attr :fill])
80+
(is (not (-> @selected first :attrs :fill))))))
81+
82+
(deftest scale
83+
(rf-test/run-test-sync
84+
(rf/dispatch [::app.e/initialize-db])
85+
(rf/dispatch [::document.e/init])
86+
(let [selected (rf/subscribe [::s/selected])]
87+
(rf/dispatch [::e/add {:tag :rect
88+
:attrs {:width 100 :height 100}}])
89+
(rf/dispatch [::e/scale [2 4]])
90+
(is (= (-> @selected first :attrs :width) "200"))
91+
(is (= (-> @selected first :attrs :height) "400")))))
92+
93+
(deftest translate
94+
(rf-test/run-test-sync
95+
(rf/dispatch [::app.e/initialize-db])
96+
(rf/dispatch [::document.e/init])
97+
(let [selected (rf/subscribe [::s/selected])]
98+
(rf/dispatch [::e/add {:tag :rect
99+
:attrs {:x 100 :y 100 :width 100 :height 100}}])
100+
(rf/dispatch [::e/translate [50 100]])
101+
(is (= (-> @selected first :attrs :x) "150"))
102+
(is (= (-> @selected first :attrs :y) "200")))))
103+
104+
(deftest place
105+
(rf-test/run-test-sync
106+
(rf/dispatch [::app.e/initialize-db])
107+
(rf/dispatch [::document.e/init])
108+
(let [selected (rf/subscribe [::s/selected])]
109+
(rf/dispatch [::e/add {:tag :rect
110+
:attrs {:x 100 :y 100 :width 100 :height 100}}])
111+
(rf/dispatch [::e/place [100 100]])
112+
(is (= (-> @selected first :attrs :x) "50"))
113+
(is (= (-> @selected first :attrs :y) "50")))))

0 commit comments

Comments
 (0)