mirror of
https://github.com/penpot/penpot.git
synced 2025-08-03 12:08:28 +02:00
✨ Add duplicate sets feature (#6240)
* ✨ Add duplicate sets feature * ✨ Add test to each module * 🎉 Fix comments * 🎉 Remove duplicate from groups * 🎉 Remove create theme from test * 🎉 Remove ' from names
This commit is contained in:
parent
f5c699ab7a
commit
eee5cf5fb4
10 changed files with 190 additions and 23 deletions
|
@ -10,6 +10,7 @@
|
|||
[frontend-tests.logic.groups-test]
|
||||
[frontend-tests.plugins.context-shapes-test]
|
||||
[frontend-tests.tokens.logic.token-actions-test]
|
||||
[frontend-tests.tokens.logic.token-data-test]
|
||||
[frontend-tests.tokens.style-dictionary-test]
|
||||
[frontend-tests.tokens.token-form-test]
|
||||
[frontend-tests.tokens.token-test]
|
||||
|
@ -39,6 +40,7 @@
|
|||
'frontend-tests.util-simple-math-test
|
||||
'frontend-tests.basic-shapes-test
|
||||
'frontend-tests.tokens.logic.token-actions-test
|
||||
'frontend-tests.tokens.logic.token-data-test
|
||||
'frontend-tests.tokens.style-dictionary-test
|
||||
'frontend-tests.tokens.token-test
|
||||
'frontend-tests.tokens.token-form-test))
|
||||
|
|
|
@ -20,3 +20,6 @@
|
|||
:objects shape-id
|
||||
:applied-tokens]
|
||||
merge applied-attributes)))
|
||||
|
||||
(defn get-tokens-lib [file]
|
||||
(get-in file [:data :tokens-lib]))
|
|
@ -0,0 +1,61 @@
|
|||
(ns frontend-tests.tokens.logic.token-data-test
|
||||
(:require
|
||||
[app.common.test-helpers.files :as cthf]
|
||||
[app.common.types.tokens-lib :as ctob]
|
||||
[app.main.data.tokens :as dt]
|
||||
[cljs.test :as t :include-macros true]
|
||||
[frontend-tests.helpers.pages :as thp]
|
||||
[frontend-tests.helpers.state :as ths]
|
||||
[frontend-tests.tokens.helpers.state :as tohs]
|
||||
[frontend-tests.tokens.helpers.tokens :as toht]))
|
||||
|
||||
(t/use-fixtures :each
|
||||
{:before thp/reset-idmap!})
|
||||
|
||||
(defn setup-file []
|
||||
(cthf/sample-file :file-1 :page-label :page-1))
|
||||
|
||||
(defn setup-file-with-token-lib
|
||||
[]
|
||||
(-> (setup-file)
|
||||
(assoc-in [:data :tokens-lib]
|
||||
(-> (ctob/make-tokens-lib)
|
||||
(ctob/add-set (ctob/make-token-set :name "Set A"))))))
|
||||
|
||||
(t/deftest duplicate-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
events [(dt/duplicate-token-set "Set A" 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")]
|
||||
|
||||
(t/testing "Token lib contains two sets"
|
||||
(t/is (= (count sets) 2))
|
||||
(t/is (some? set)))))))))
|
||||
|
||||
(t/deftest duplicate-non-exist-set
|
||||
(t/async
|
||||
done
|
||||
(let [file (setup-file-with-token-lib)
|
||||
store (ths/setup-store file)
|
||||
events [(dt/duplicate-token-set "Set B" 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 B")]
|
||||
|
||||
(t/testing "Token lib contains one set"
|
||||
(t/is (= (count sets) 1))
|
||||
(t/is (nil? set)))))))))
|
Loading…
Add table
Add a link
Reference in a new issue