🔧 Read token sets by id instead of name

This commit is contained in:
Andrés Moya
2025-08-18 17:41:42 +02:00
committed by Andrés Moya
parent 473066cf5c
commit 021b8f81ca
17 changed files with 409 additions and 258 deletions

View File

@@ -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)))))))))

View File

@@ -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))))))))))