Skip to content

Commit c6c53dc

Browse files
committed
fix tests and introduce benchmarks
1 parent d4d2c18 commit c6c53dc

File tree

4 files changed

+46
-4
lines changed

4 files changed

+46
-4
lines changed

src/renderer/element/handlers.cljs

+2-1
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,8 @@
632632
(m/=> add [:-> App map? App])
633633
(defn add
634634
[db el]
635-
(create (deselect db) (assoc el :selected true)))
635+
(-> (deselect db)
636+
(create (assoc el :selected true))))
636637

637638
(m/=> boolean-operation [:-> App PathBooleanOperation App])
638639
(defn boolean-operation

src/renderer/tool/hierarchy.cljs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
(defmulti snapping-points (fn [db _e] (:tool db)))
1414
(defmulti activate :tool)
1515
(defmulti deactivate :tool)
16-
(defmulti render identity)
16+
(defmulti render "Renders the tool helpers." identity)
1717
(defmulti properties "Returns the properties of the tool." identity)
1818
(defmulti help "Returns the status bar help text." (fn [tool state] [tool state]))
1919

test/benchmark_test.cljs

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
(ns benchmark-test
2+
(:require
3+
[cljs.test :refer-macros [deftest is testing]]
4+
[clojure.string :as str]
5+
[day8.re-frame.test :as rf-test]
6+
[re-frame.core :as rf]
7+
[renderer.app.events :as app.e]
8+
[renderer.document.events :as document.e]
9+
[renderer.element.events :as element.e]))
10+
11+
(defn bench
12+
"Returns the elapsed time of the event handling in milliseconds."
13+
([e]
14+
(bench e 1))
15+
([e iterations]
16+
(let [start (.getTime (js/Date.))
17+
_ (dotimes [_ iterations] (rf/dispatch e))
18+
end (.getTime (js/Date.))]
19+
(- end start))))
20+
21+
(deftest test-pp-str
22+
(rf-test/run-test-sync
23+
(rf/dispatch [::app.e/initialize-db])
24+
(rf/dispatch [::document.e/init])
25+
26+
(testing "creating elements"
27+
(let [points (str/join " " (repeatedly 100 #(rand-int 1000)))]
28+
(is (> 1000 (bench [::element.e/add {:tag :polygon
29+
:attrs {:points points}}] 20)))))
30+
31+
(testing "selecting elements"
32+
(is (> 100 (bench [::element.e/select-all]))))
33+
34+
(testing "moving elements"
35+
(is (> 100 (bench [::element.e/translate [100 100]]))))
36+
37+
(testing "scaling elements"
38+
(is (> 100 (bench [::element.e/scale [100 100]]))))))

test/tool_tests.cljs renamed to test/tool_test.cljs

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
(ns tool-tests
1+
(ns tool-test
22
(:require
33
[cljs.test :refer-macros [deftest is]]
44
[day8.re-frame.test :as rf-test]
55
[re-frame.core :as rf]
66
[renderer.app.events :as app.e]
7+
[renderer.document.events :as document.e]
78
[renderer.tool.events :as e]
9+
[renderer.tool.impl.core]
810
[renderer.tool.subs :as s]))
911

1012
(deftest init
@@ -15,7 +17,8 @@
1517

1618
(deftest activate
1719
(rf-test/run-test-sync
18-
(rf/dispatch [::e/initialize-db])
20+
(rf/dispatch [::app.e/initialize-db])
21+
(rf/dispatch [::document.e/init])
1922

2023
(let [active-tool (rf/subscribe [::s/active])]
2124
(is (= @active-tool :transform))

0 commit comments

Comments
 (0)