mirror of
https://github.com/penpot/penpot.git
synced 2025-01-23 23:18:48 -05:00
37 lines
1.8 KiB
Clojure
37 lines
1.8 KiB
Clojure
(ns token-tests.token-set-test
|
|
(:require
|
|
[app.main.ui.workspace.tokens.token-set :as wtts]
|
|
[cljs.test :as t]))
|
|
|
|
(t/deftest toggle-active-theme-id-test
|
|
(t/testing "toggles active theme id"
|
|
(let [state {:workspace-data {:token-themes-index {1 {:id 1}}}}]
|
|
(t/testing "activates theme with id")
|
|
(t/is (= (wtts/toggle-active-theme-id 1 state) #{1})))
|
|
|
|
(let [state {:workspace-data {:token-active-themes #{1}
|
|
:token-themes-index {1 {:id 1}}}}]
|
|
(t/testing "missing temp theme returns empty set"
|
|
(t/is (= #{} (wtts/toggle-active-theme-id 1 state)))))
|
|
|
|
(let [state {:workspace-data {:token-theme-temporary-id :temp
|
|
:token-active-themes #{1}
|
|
:token-themes-index {1 {:id 1}}}}]
|
|
(t/testing "empty set returns temp theme"
|
|
(t/is (= #{:temp} (wtts/toggle-active-theme-id 1 state)))))
|
|
|
|
(let [state {:workspace-data {:token-active-themes #{2 3 4}
|
|
:token-themes-index {1 {:id 1}
|
|
2 {:id 2}
|
|
3 {:id 3}
|
|
4 {:id 4 :group :different}}}}]
|
|
(t/testing "removes same group themes and keeps different group themes"
|
|
(t/is (= #{1 4} (wtts/toggle-active-theme-id 1 state)))))
|
|
|
|
(let [state {:workspace-data {:token-active-themes #{1 2 3 4}}
|
|
:token-themes-index {1 {:id 1}
|
|
2 {:id 2}
|
|
3 {:id 3}
|
|
4 {:id 4 :group :different}}}]
|
|
(t/testing "removes theme when active"
|
|
(t/is (= #{4 3 2} (wtts/toggle-active-theme-id 1 state)))))))
|