mirror of
https://github.com/penpot/penpot.git
synced 2026-03-13 05:46:08 +00:00
🐛 Fix nil values being inserted into TokenTheme :sets field (#8560)
* 🐛 Fix nil values being inserted into TokenTheme :sets field * 📎 Use transducer form for filter in make-token-theme Signed-off-by: Andrey Antukh <niwi@niwi.nz> --------- Signed-off-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
@@ -611,7 +611,7 @@
|
||||
is-source
|
||||
external-id
|
||||
(ct/now)
|
||||
set-names))
|
||||
(into #{} (filter some?) set-names)))
|
||||
|
||||
(enable-set [this set-name]
|
||||
(set-sets this (conj sets set-name)))
|
||||
@@ -632,14 +632,9 @@
|
||||
|
||||
(update-set-name [this prev-set-name set-name]
|
||||
(if (get sets prev-set-name)
|
||||
(TokenTheme. id
|
||||
name
|
||||
group
|
||||
description
|
||||
is-source
|
||||
external-id
|
||||
(ct/now)
|
||||
(conj (disj sets prev-set-name) set-name))
|
||||
(let [sets (-> (disj sets prev-set-name)
|
||||
(conj set-name))]
|
||||
(set-sets this sets))
|
||||
this))
|
||||
|
||||
(theme-matches-group-name [this group name]
|
||||
@@ -724,7 +719,7 @@
|
||||
(update :is-source d/nilv false)
|
||||
(update :external-id #(or % (str new-id)))
|
||||
(update :modified-at #(or % (ct/now)))
|
||||
(update :sets set)
|
||||
(update :sets #(into #{} (filter some?) %))
|
||||
(check-token-theme-attrs)
|
||||
(map->TokenTheme))))
|
||||
|
||||
|
||||
@@ -235,6 +235,19 @@
|
||||
(t/is (thrown-with-msg? #?(:cljs js/Error :clj Exception) #"expected valid params for token-theme"
|
||||
(ctob/make-token-theme params)))))
|
||||
|
||||
(t/deftest make-token-theme-strips-nil-from-sets
|
||||
(t/testing "make-token-theme strips nil values from :sets"
|
||||
(let [theme (ctob/make-token-theme :name "test" :sets #{"valid-set" nil})]
|
||||
(t/is (= (:sets theme) #{"valid-set"}))))
|
||||
(t/testing "enable-set with nil set-name does not add nil to :sets"
|
||||
(let [theme (ctob/make-token-theme :name "test" :sets #{"existing-set"})
|
||||
theme' (ctob/enable-set theme nil)]
|
||||
(t/is (= (:sets theme') #{"existing-set"}))))
|
||||
(t/testing "toggle-set with nil set-name does not add nil to :sets"
|
||||
(let [theme (ctob/make-token-theme :name "test" :sets #{})
|
||||
theme' (ctob/toggle-set theme nil)]
|
||||
(t/is (= (:sets theme') #{})))))
|
||||
|
||||
(t/deftest make-tokens-lib
|
||||
(let [tokens-lib (ctob/make-tokens-lib)]
|
||||
(t/is (= (ctob/set-count tokens-lib) 0))))
|
||||
|
||||
Reference in New Issue
Block a user