diff --git a/common/src/app/common/types/tokens_lib.cljc b/common/src/app/common/types/tokens_lib.cljc index 60ae92e511..a01a721cfc 100644 --- a/common/src/app/common/types/tokens_lib.cljc +++ b/common/src/app/common/types/tokens_lib.cljc @@ -217,7 +217,7 @@ (update-token [_ id f] "update a token in the list") (delete-token [_ id] "delete a token from the list") (get-token [_ id] "get a token by its id") - (get-token-by-name [_ id] "get a token by its name") + (get-token-by-name [_ name] "get a token by its name") (get-tokens [_] "return an ordered sequence of all tokens in the set") (get-tokens-map [_] "return a map of tokens in the set, indexed by token-name")) diff --git a/common/test/common_tests/logic/move_shapes_test.cljc b/common/test/common_tests/logic/move_shapes_test.cljc index 657b624623..4180bfe3b1 100644 --- a/common/test/common_tests/logic/move_shapes_test.cljc +++ b/common/test/common_tests/logic/move_shapes_test.cljc @@ -144,16 +144,17 @@ file (-> (thf/sample-file :file1) (tht/add-tokens-lib) (tht/update-tokens-lib #(-> % - (ctob/add-set (ctob/make-token-set :name "test-token-set")) + (ctob/add-set (ctob/make-token-set :id (thi/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"}) - (ctob/add-token-in-set "test-token-set" + (ctob/add-token-in-set (thi/id :test-token-set) (ctob/make-token :id (thi/new-id! :token-sizing) :name "token-sizing" :type :sizing :value 10)) - (ctob/add-token-in-set "test-token-set" + (ctob/add-token-in-set (thi/id :test-token-set) (ctob/make-token :id (thi/new-id! :token-spacing) :name "token-spacing" :type :spacing diff --git a/common/test/common_tests/logic/token_apply_test.cljc b/common/test/common_tests/logic/token_apply_test.cljc index dbe07acca8..a0e27a985f 100644 --- a/common/test/common_tests/logic/token_apply_test.cljc +++ b/common/test/common_tests/logic/token_apply_test.cljc @@ -77,12 +77,12 @@ :name "token-font-family" :type :font-family :value ["Helvetica" "Arial" "sans-serif"])) - (ctob/add-token-in-set "test-token-set" + (ctob/add-token-in-set (thi/id :test-token-set) (ctob/make-token :id (thi/new-id! :token-sizing) :name "token-sizing" :type :sizing :value 10)) - (ctob/add-token-in-set "test-token-set" + (ctob/add-token-in-set (thi/id :test-token-set) (ctob/make-token :id (thi/new-id! :token-spacing) :name "token-spacing" :type :spacing diff --git a/common/test/common_tests/types/tokens_lib_test.cljc b/common/test/common_tests/types/tokens_lib_test.cljc index ab9338ba6e..89145f24c7 100644 --- a/common/test/common_tests/types/tokens_lib_test.cljc +++ b/common/test/common_tests/types/tokens_lib_test.cljc @@ -1600,10 +1600,10 @@ (let [json (-> (slurp "test/common_tests/types/data/tokens-typography-example.json") (json/decode {:key-fn identity})) lib (ctob/parse-decoded-json json "typography-test") - set (ctob/get-set lib "typography-test")] + set (ctob/get-set-by-name lib "typography-test")] (t/testing "typography token with composite value" - (let [token (ctob/get-token-by-name lib "typography-test" "test.typo")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.typo")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) {:font-weight "100" @@ -1612,28 +1612,28 @@ (t/is (= (:description token) "")))) (t/testing "typography token with string reference" - (let [token (ctob/get-token-by-name lib "typography-test" "test.typo2")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.typo2")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) "{typo}")) (t/is (= (:description token) "")))) (t/testing "typography token referencing single token" - (let [token (ctob/get-token-by-name lib "typography-test" "test.typo-to-single")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.typo-to-single")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) "{font-weight}")) (t/is (= (:description token) "")))) (t/testing "typography token with empty value" - (let [token (ctob/get-token-by-name lib "typography-test" "test.test-empty")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.test-empty")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) {})) (t/is (= (:description token) "")))) (t/testing "typography token with complex value and description" - (let [token (ctob/get-token-by-name lib "typography-test" "test.typo-complex")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.typo-complex")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) {:font-weight "bold" @@ -1645,8 +1645,8 @@ (t/is (= (:description token) "A complex typography token")))) (t/testing "individual font tokens still work" - (let [font-weight-token (ctob/get-token-by-name lib "typography-test" "test.font-weight") - font-size-token (ctob/get-token-by-name lib "typography-test" "test.font-size")] + (let [font-weight-token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.font-weight") + font-size-token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.font-size")] (t/is (some? font-weight-token)) (t/is (= (:type font-weight-token) :font-weight)) (t/is (= (:value font-weight-token) "200")) @@ -1656,7 +1656,7 @@ (t/is (= (:value font-size-token) "18px")))) (t/testing "typography token with string font family gets transformed to array" - (let [token (ctob/get-token-by-name lib "typography-test" "test.typo-with-string-font-family")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "test.typo-with-string-font-family")] (t/is (some? token)) (t/is (= (:type token) :typography)) (t/is (= (:value token) {:font-weight "600" @@ -1732,18 +1732,20 @@ ;; Export to JSON format exported (ctob/export-dtcg-json original-lib) ;; Import back - imported-lib (ctob/parse-decoded-json exported "")] + imported-lib (ctob/parse-decoded-json exported "") + original-set (ctob/get-set-by-name original-lib "test-set") + imported-set (ctob/get-set-by-name imported-lib "test-set")] (t/testing "round trip preserves typography tokens" - (let [original-token (ctob/get-token-by-name original-lib "test-set" "typo.test") - imported-token (ctob/get-token-by-name imported-lib "test-set" "typo.test")] + (let [original-token (ctob/get-token-in-set-by-name original-lib (ctob/get-id original-set) "typo.test") + imported-token (ctob/get-token-in-set-by-name imported-lib (ctob/get-id imported-set) "typo.test")] (t/is (some? imported-token)) (t/is (= (:type imported-token) (:type original-token))) (t/is (= (:value imported-token) (:value original-token))) (t/is (= (:description imported-token) (:description original-token)))) - (let [original-ref (ctob/get-token-by-name original-lib "test-set" "typo.ref") - imported-ref (ctob/get-token-by-name imported-lib "test-set" "typo.ref")] + (let [original-ref (ctob/get-token-in-set-by-name original-lib (ctob/get-id original-set) "typo.ref") + imported-ref (ctob/get-token-in-set-by-name imported-lib (ctob/get-id imported-set) "typo.ref")] (t/is (some? imported-ref)) (t/is (= (:type imported-ref) (:type original-ref))) (t/is (= (:value imported-ref) (:value original-ref)))))))) @@ -1752,31 +1754,32 @@ (t/deftest parse-font-family-tokens (let [json (-> (slurp "test/common_tests/types/data/tokens-font-family-example.json") (json/decode {:key-fn identity})) - lib (ctob/parse-decoded-json json "font-family-test")] + lib (ctob/parse-decoded-json json "font-family-test") + set (ctob/get-set-by-name lib "font-family-test")] (t/testing "string font family token gets split into array" - (let [token (ctob/get-token-by-name lib "font-family-test" "fonts.string-font-family")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "fonts.string-font-family")] (t/is (some? token)) (t/is (= (:type token) :font-family)) (t/is (= (:value token) ["Arial" "Helvetica" "sans-serif"])) (t/is (= (:description token) "A font family defined as a string")))) (t/testing "array font family token stays as array" - (let [token (ctob/get-token-by-name lib "font-family-test" "fonts.array-font-family")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "fonts.array-font-family")] (t/is (some? token)) (t/is (= (:type token) :font-family)) (t/is (= (:value token) ["Inter" "system-ui" "sans-serif"])) (t/is (= (:description token) "A font family defined as an array")))) (t/testing "single font family string gets converted to array" - (let [token (ctob/get-token-by-name lib "font-family-test" "fonts.single-font-family")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "fonts.single-font-family")] (t/is (some? token)) (t/is (= (:type token) :font-family)) (t/is (= (:value token) ["Georgia"])) (t/is (= (:description token) "")))) (t/testing "complex font names with spaces handled correctly" - (let [token (ctob/get-token-by-name lib "font-family-test" "fonts.font-with-spaces")] + (let [token (ctob/get-token-in-set-by-name lib (ctob/get-id set) "fonts.font-with-spaces")] (t/is (some? token)) (t/is (= (:type token) :font-family)) (t/is (= (:value token) ["Source Sans Pro" "Arial" "sans-serif"]))))))) @@ -1831,18 +1834,20 @@ ;; Export to JSON format exported (ctob/export-dtcg-json original-lib) ;; Import back - imported-lib (ctob/parse-decoded-json exported "")] + imported-lib (ctob/parse-decoded-json exported "") + original-set (ctob/get-set-by-name original-lib "test-set") + imported-set (ctob/get-set-by-name imported-lib "test-set")] (t/testing "round trip preserves font family tokens" - (let [original-token (ctob/get-token-by-name original-lib "test-set" "fonts.test-array") - imported-token (ctob/get-token-by-name imported-lib "test-set" "fonts.test-array")] + (let [original-token (ctob/get-token-in-set-by-name original-lib (ctob/get-id original-set) "fonts.test-array") + imported-token (ctob/get-token-in-set-by-name imported-lib (ctob/get-id imported-set) "fonts.test-array")] (t/is (some? imported-token)) (t/is (= (:type imported-token) (:type original-token))) (t/is (= (:value imported-token) (:value original-token))) (t/is (= (:description imported-token) (:description original-token)))) - (let [original-single (ctob/get-token-by-name original-lib "test-set" "fonts.test-single") - imported-single (ctob/get-token-by-name imported-lib "test-set" "fonts.test-single")] + (let [original-single (ctob/get-token-in-set-by-name original-lib (ctob/get-id original-set) "fonts.test-single") + imported-single (ctob/get-token-in-set-by-name imported-lib (ctob/get-id imported-set) "fonts.test-single")] (t/is (some? imported-single)) (t/is (= (:type imported-single) (:type original-single))) (t/is (= (:value imported-single) (:value original-single)))))))) diff --git a/frontend/src/app/main/ui/workspace/tokens/sets/lists.cljs b/frontend/src/app/main/ui/workspace/tokens/sets/lists.cljs index c617e25426..5976ee6997 100644 --- a/frontend/src/app/main/ui/workspace/tokens/sets/lists.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/sets/lists.cljs @@ -279,7 +279,7 @@ [:div {:ref dref :role "button" :data-testid "tokens-set-item" - :id (str "token-set-item-" (str/join "/" tree-path)) + :id (str "token-set-item-" (str/join "/" path)) :style {"--tree-depth" depth} :class (stl/css-case :set-item-container true :selected-set is-selected