Prepare debug functions to be used in unit tests

This commit is contained in:
Andrés Moya 2022-03-16 11:27:51 +01:00
parent 48624b1db6
commit 31bfe3930d

View file

@ -148,36 +148,51 @@
(clj->js (get-in @st/state path))) (clj->js (get-in @st/state path)))
nil) nil)
(defn ^:export dump-objects [] (defn dump-objects'
(let [page-id (get @st/state :current-page-id) [state]
objects (get-in @st/state [:workspace-data :pages-index page-id :objects])] (let [page-id (get state :current-page-id)
objects (get-in state [:workspace-data :pages-index page-id :objects])]
(logjs "objects" objects) (logjs "objects" objects)
nil)) nil))
(defn ^:export dump-object [name] (defn ^:export dump-objects
(let [page-id (get @st/state :current-page-id) []
objects (get-in @st/state [:workspace-data :pages-index page-id :objects]) (dump-objects' @st/state))
(defn dump-object'
[state name]
(let [page-id (get state :current-page-id)
objects (get-in state [:workspace-data :pages-index page-id :objects])
result (or (d/seek (fn [[_ shape]] (= name (:name shape))) objects) result (or (d/seek (fn [[_ shape]] (= name (:name shape))) objects)
(get objects (uuid/uuid name)))] (get objects (uuid/uuid name)))]
(logjs name result) (logjs name result)
nil)) nil))
(defn ^:export dump-selected [] (defn ^:export dump-object
(let [page-id (get @st/state :current-page-id) [name]
objects (get-in @st/state [:workspace-data :pages-index page-id :objects]) (dump-object' @st/state name))
selected (get-in @st/state [:workspace-local :selected])
(defn dump-selected'
[state]
(let [page-id (get state :current-page-id)
objects (get-in state [:workspace-data :pages-index page-id :objects])
selected (get-in state [:workspace-local :selected])
result (->> selected (map (d/getf objects)))] result (->> selected (map (d/getf objects)))]
(logjs "selected" result) (logjs "selected" result)
nil)) nil))
(defn ^:export dump-tree (defn ^:export dump-selected
([] (dump-tree false false)) []
([show-ids] (dump-tree show-ids false)) (dump-selected' @st/state))
([show-ids show-touched]
(let [page-id (get @st/state :current-page-id) (defn dump-tree'
objects (get-in @st/state [:workspace-data :pages-index page-id :objects]) ([state ] (dump-tree' state false false))
components (get-in @st/state [:workspace-data :components]) ([state show-ids] (dump-tree' state show-ids false))
libraries (get @st/state :workspace-libraries) ([state show-ids show-touched]
(let [page-id (get state :current-page-id)
objects (get-in state [:workspace-data :pages-index page-id :objects])
components (get-in state [:workspace-data :components])
libraries (get state :workspace-libraries)
root (d/seek #(nil? (:parent-id %)) (vals objects))] root (d/seek #(nil? (:parent-id %)) (vals objects))]
(letfn [(show-shape [shape-id level objects] (letfn [(show-shape [shape-id level objects]
@ -243,6 +258,11 @@
(println (str/format "[%s]" (:name component))) (println (str/format "[%s]" (:name component)))
(show-shape (:id component) 0 (:objects component))))))))) (show-shape (:id component) 0 (:objects component)))))))))
(defn ^:export dump-tree
([] (dump-tree' @st/state))
([show-ids] (dump-tree' @st/state show-ids))
([show-ids show-touched] (dump-tree' @st/state show-ids show-touched)))
(when *assert* (when *assert*
(defonce debug-subscription (defonce debug-subscription
(->> st/stream (->> st/stream
@ -274,7 +294,6 @@
dw/reset-zoom dw/reset-zoom
(dw/update-viewport-position {:x (constantly 0) :y (constantly 0)}))) (dw/update-viewport-position {:x (constantly 0) :y (constantly 0)})))
(defn ^:export hide-ui (defn ^:export hide-ui
[] []
(st/emit! (st/emit!