mirror of
https://github.com/penpot/penpot.git
synced 2025-02-01 11:59:17 -05:00
Add style dictionary find-token-reference test
This commit is contained in:
parent
5f25bd8a7b
commit
5c42514170
2 changed files with 22 additions and 12 deletions
|
@ -24,21 +24,12 @@
|
||||||
;; Functions -------------------------------------------------------------------
|
;; Functions -------------------------------------------------------------------
|
||||||
|
|
||||||
(defn find-token-references
|
(defn find-token-references
|
||||||
"Finds token reference values in `str` and returns a set with all contained namespaces."
|
"Finds token reference values in `value-string` and returns a set with all contained namespaces."
|
||||||
[str]
|
[value-string]
|
||||||
(some->> (re-seq #"\{([^}]*)\}" str)
|
(some->> (re-seq #"\{([^}]*)\}" value-string)
|
||||||
(map second)
|
(map second)
|
||||||
(into #{})))
|
(into #{})))
|
||||||
|
|
||||||
(comment
|
|
||||||
(find-token-references "{foo} + {bar}")
|
|
||||||
;; => #{"foo" "bar"}
|
|
||||||
(find-token-references "{foo.bar.baz} + something")
|
|
||||||
;; => #{"foo.bar.baz"}
|
|
||||||
(find-token-references "1 + 2")
|
|
||||||
;; => nil
|
|
||||||
nil)
|
|
||||||
|
|
||||||
(defn token-self-reference? [token-name reference-string]
|
(defn token-self-reference? [token-name reference-string]
|
||||||
(let [escaped-name (str/replace token-name "." "\\.")
|
(let [escaped-name (str/replace token-name "." "\\.")
|
||||||
regex (-> (str "{" escaped-name "}")
|
regex (-> (str "{" escaped-name "}")
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
;; This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
;;
|
||||||
|
;; Copyright (c) KALEIDOS INC
|
||||||
|
(ns frontend-tests.tokens.style-dictionary-test
|
||||||
|
(:require
|
||||||
|
[app.main.ui.workspace.tokens.style-dictionary :as wtsd]
|
||||||
|
[cljs.test :as t :include-macros true]))
|
||||||
|
|
||||||
|
(t/deftest test-find-token-references
|
||||||
|
;; Return references
|
||||||
|
(t/is (= #{"foo" "bar"} (wtsd/find-token-references "{foo} + {bar}")))
|
||||||
|
;; Ignore non reference text
|
||||||
|
(t/is (= #{"foo.bar.baz"} (wtsd/find-token-references "{foo.bar.baz} + something")))
|
||||||
|
;; No references found
|
||||||
|
(t/is (nil? (wtsd/find-token-references "1 + 2")))
|
||||||
|
;; Edge-case: Ignore unmatched closing parens
|
||||||
|
(t/is (= #{"foo" "bar"} (wtsd/find-token-references "{foo}} + {bar}"))))
|
Loading…
Add table
Reference in a new issue