mirror of
https://github.com/penpot/penpot.git
synced 2025-12-12 06:24:17 +01:00
🔧 Read token sets by id instead of name
This commit is contained in:
@@ -34,7 +34,8 @@
|
||||
(-> (cthf/sample-file :file1)
|
||||
(ctht/add-tokens-lib)
|
||||
(ctht/update-tokens-lib #(-> %
|
||||
(ctob/add-set (ctob/make-token-set :name "test-token-set"))
|
||||
(ctob/add-set (ctob/make-token-set :id (cthi/new-id! :test-token-set)
|
||||
:name "test-token-set"))
|
||||
(ctob/add-theme (ctob/make-token-theme :name "test-theme"
|
||||
:sets #{"test-token-set"}))
|
||||
(ctob/set-active-themes #{"/test-theme"})
|
||||
@@ -206,7 +207,8 @@
|
||||
store (ths/setup-store file)
|
||||
|
||||
;; ==== Action
|
||||
events [(dwtl/set-selected-token-set-name "test-token-set")
|
||||
events [(dwtl/set-selected-token-set-id (cthi/id :test-token-set))
|
||||
(dwtl/set-selected-token-set-name "test-token-set")
|
||||
(dwtl/update-token (cthi/id :test-token-1)
|
||||
{:name "test-token-1"
|
||||
:type :border-radius
|
||||
@@ -321,7 +323,8 @@
|
||||
file (-> (cthf/sample-file :file1)
|
||||
(ctht/add-tokens-lib)
|
||||
(ctht/update-tokens-lib #(-> %
|
||||
(ctob/add-set (ctob/make-token-set :name "test-token-set"))
|
||||
(ctob/add-set (ctob/make-token-set :id (cthi/new-id! :test-token-set)
|
||||
:name "test-token-set"))
|
||||
(ctob/add-theme (ctob/make-token-theme :name "test-theme"
|
||||
:sets #{"test-token-set"}))
|
||||
(ctob/set-active-themes #{"/test-theme"})
|
||||
@@ -368,7 +371,8 @@
|
||||
store (ths/setup-store file)
|
||||
|
||||
;; ==== Action
|
||||
events [(dwtl/set-selected-token-set-name "test-token-set")
|
||||
events [(dwtl/set-selected-token-set-id (cthi/id :test-token-set))
|
||||
(dwtl/set-selected-token-set-name "test-token-set")
|
||||
(dwtl/update-token (cthi/id :token-radius)
|
||||
{:name "token-radius"
|
||||
:value 30})
|
||||
@@ -396,7 +400,6 @@
|
||||
(fn [new-state]
|
||||
(let [;; ==== Get
|
||||
file' (ths/get-file-from-state new-state)
|
||||
frame1' (cths/get-shape file' :frame1)
|
||||
c-frame1' (cths/get-shape file' :c-frame1)
|
||||
tokens-frame1' (:applied-tokens c-frame1')]
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
(dwti/import-file-stream "core")
|
||||
(rx/subs! (fn [tokens-lib]
|
||||
(t/is (instance? ctob/TokensLib tokens-lib))
|
||||
(t/is (= "red" (-> (ctob/get-set tokens-lib "core")
|
||||
(t/is (= "red" (-> (ctob/set-by-name tokens-lib "core")
|
||||
(ctob/token-by-name "color")
|
||||
(:value))))
|
||||
(done))))))))
|
||||
@@ -96,6 +96,7 @@ color.value tries to reference missing, which is not defined.")))
|
||||
(->> (rx/of json)
|
||||
(dwti/import-file-stream "")
|
||||
(rx/subs! (fn [tokens-lib]
|
||||
(t/is (instance? ctob/TokensLib tokens-lib))
|
||||
(t/is (= "{missing}" (:value (ctob/get-token-by-name tokens-lib "core" "color"))))
|
||||
(done))))))))
|
||||
(let [token-set (ctob/set-by-name tokens-lib "core")]
|
||||
(t/is (instance? ctob/TokensLib tokens-lib))
|
||||
(t/is (= "{missing}" (:value (ctob/get-token-by-name tokens-lib (ctob/get-id token-set) "color"))))
|
||||
(done)))))))))
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
(ns frontend-tests.tokens.logic.token-data-test
|
||||
(:require
|
||||
[app.common.test-helpers.files :as cthf]
|
||||
[app.common.test-helpers.ids-map :as cthi]
|
||||
[app.common.types.tokens-lib :as ctob]
|
||||
[app.main.data.workspace.tokens.library-edit :as dwtl]
|
||||
[cljs.test :as t :include-macros true]
|
||||
@@ -26,26 +27,66 @@
|
||||
(-> (setup-file)
|
||||
(assoc-in [:data :tokens-lib]
|
||||
(-> (ctob/make-tokens-lib)
|
||||
(ctob/add-set (ctob/make-token-set :name "Set A"))))))
|
||||
(ctob/add-set (ctob/make-token-set :id (cthi/new-id! :test-token-set)
|
||||
:name "Set A"))))))
|
||||
|
||||
(t/deftest add-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
events [(dwtl/create-token-set "Set B")]]
|
||||
|
||||
(tohs/run-store-async
|
||||
store done events
|
||||
(fn [new-state]
|
||||
(let [file' (ths/get-file-from-state new-state)
|
||||
tokens-lib' (toht/get-tokens-lib file')
|
||||
sets' (ctob/get-sets tokens-lib')
|
||||
set-b' (ctob/set-by-name tokens-lib' "Set B")]
|
||||
|
||||
(t/testing "Token lib contains two sets"
|
||||
(t/is (= (count sets') 2))
|
||||
(t/is (some? set-b')))))))))
|
||||
|
||||
(t/deftest rename-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
tokens-lib (toht/get-tokens-lib file)
|
||||
set-a (ctob/set-by-name tokens-lib "Set A")
|
||||
events [(dwtl/update-token-set (ctob/rename set-a "Set A updated")
|
||||
"Set A updated")]]
|
||||
|
||||
(tohs/run-store-async
|
||||
store done events
|
||||
(fn [new-state]
|
||||
(let [file' (ths/get-file-from-state new-state)
|
||||
tokens-lib' (toht/get-tokens-lib file')
|
||||
sets' (ctob/get-sets tokens-lib')
|
||||
set-a' (ctob/set-by-name tokens-lib' "Set A updated")]
|
||||
|
||||
(t/testing "Set has been renamed"
|
||||
(t/is (= (count sets') 1))
|
||||
(t/is (some? set-a')))))))))
|
||||
|
||||
(t/deftest duplicate-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
events [(dwtl/duplicate-token-set "Set A" false)]]
|
||||
events [(dwtl/duplicate-token-set (cthi/id :test-token-set) false)]]
|
||||
|
||||
(tohs/run-store-async
|
||||
store done events
|
||||
(fn [new-state]
|
||||
(let [file' (ths/get-file-from-state new-state)
|
||||
token-lib (toht/get-tokens-lib file')
|
||||
sets (ctob/get-sets token-lib)
|
||||
set (ctob/get-set token-lib "Set A")]
|
||||
sets (ctob/get-sets token-lib)]
|
||||
|
||||
(t/testing "Token lib contains two sets"
|
||||
(t/is (= (count sets) 2))
|
||||
(t/is (some? set)))))))))
|
||||
(t/is (= (count sets) 2)))))))))
|
||||
|
||||
(t/deftest duplicate-non-exist-set
|
||||
(t/async
|
||||
@@ -59,9 +100,24 @@
|
||||
(fn [new-state]
|
||||
(let [file' (ths/get-file-from-state new-state)
|
||||
token-lib (toht/get-tokens-lib file')
|
||||
sets (ctob/get-sets token-lib)
|
||||
set (ctob/get-set token-lib "Set B")]
|
||||
sets (ctob/get-sets token-lib)]
|
||||
|
||||
(t/testing "Token lib contains one set"
|
||||
(t/is (= (count sets) 1))
|
||||
(t/is (nil? set)))))))))
|
||||
(t/is (= (count sets) 1))))))))
|
||||
|
||||
(t/deftest delete-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
events [(dwtl/delete-token-set-path (ctob/split-set-name "Set A") false)]]
|
||||
|
||||
(tohs/run-store-async
|
||||
store done events
|
||||
(fn [new-state]
|
||||
(let [file' (ths/get-file-from-state new-state)
|
||||
tokens-lib' (toht/get-tokens-lib file')
|
||||
sets' (ctob/get-sets tokens-lib')]
|
||||
|
||||
(t/testing "Set has been deleted"
|
||||
(t/is (= (count sets') 0))))))))))
|
||||
Reference in New Issue
Block a user