mirror of
https://github.com/penpot/penpot.git
synced 2025-02-08 08:09:14 -05:00
✨ Add swap as override component tests
This commit is contained in:
parent
d221241451
commit
614af9edc4
2 changed files with 141 additions and 0 deletions
BIN
common/test/cases/swas-as-override.penpot
Normal file
BIN
common/test/cases/swas-as-override.penpot
Normal file
Binary file not shown.
141
common/test/common_tests/logic/swap_as_override_test.cljc
Normal file
141
common/test/common_tests/logic/swap_as_override_test.cljc
Normal file
|
@ -0,0 +1,141 @@
|
|||
;; 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 common-tests.logic.swap-as-override-test
|
||||
(:require
|
||||
[app.common.files.changes :as ch]
|
||||
[app.common.files.changes-builder :as pcb]
|
||||
[app.common.logic.libraries :as cll]
|
||||
[app.common.logic.shapes :as cls]
|
||||
[app.common.pprint :as pp]
|
||||
[app.common.test-helpers.components :as thc]
|
||||
[app.common.test-helpers.compositions :as tho]
|
||||
[app.common.test-helpers.files :as thf]
|
||||
[app.common.test-helpers.ids-map :as thi]
|
||||
[app.common.test-helpers.shapes :as ths]
|
||||
[app.common.types.component :as ctk]
|
||||
[app.common.types.container :as ctn]
|
||||
[app.common.types.file :as ctf]
|
||||
[app.common.uuid :as uuid]
|
||||
[clojure.test :as t]))
|
||||
|
||||
(t/use-fixtures :each thi/test-fixture)
|
||||
|
||||
(defn- setup []
|
||||
(-> (thf/sample-file :file1)
|
||||
|
||||
(tho/add-simple-component :component-1 :frame-component-1 :child-component-1 :child-params {:name "child-component-1" :type :rect :fills (ths/sample-fills-color :fill-color "#111111")})
|
||||
(tho/add-simple-component :component-2 :frame-component-2 :child-component-2 :child-params {:name "child-component-2" :type :rect :fills (ths/sample-fills-color :fill-color "#222222")})
|
||||
(tho/add-simple-component :component-3 :frame-component-3 :child-component-3 :child-params {:name "child-component-3" :type :rect :fills (ths/sample-fills-color :fill-color "#333333")})
|
||||
|
||||
(tho/add-frame :frame-icon-and-text)
|
||||
(thc/instantiate-component :component-1 :copy-component-1 :parent-label :frame-icon-and-text :children-labels [:component-1-icon-and-text])
|
||||
(ths/add-sample-shape :text
|
||||
{:type :text
|
||||
:name "icon+text"
|
||||
:parent-label :frame-icon-and-text})
|
||||
(thc/make-component :icon-and-text :frame-icon-and-text)
|
||||
|
||||
(tho/add-frame :frame-panel)
|
||||
(thc/instantiate-component :icon-and-text :copy-icon-and-text :parent-label :frame-panel :children-labels [:icon-and-text-panel])
|
||||
(thc/make-component :panel :frame-panel)
|
||||
|
||||
(thc/instantiate-component :panel :copy-panel :children-labels [:copy-icon-and-text-panel])))
|
||||
|
||||
(defn- propagate-all-component-changes [file]
|
||||
(-> file
|
||||
(tho/propagate-component-changes :icon-and-text)
|
||||
(tho/propagate-component-changes :panel)))
|
||||
|
||||
(defn- fill-colors [file]
|
||||
[(tho/bottom-fill-color file :frame-icon-and-text)
|
||||
(tho/bottom-fill-color file :frame-panel)
|
||||
(tho/bottom-fill-color file :copy-panel)])
|
||||
|
||||
(defn- validate [file validator]
|
||||
(validator file)
|
||||
file)
|
||||
|
||||
;; Related .penpot file: common/test/cases/xxxxxx
|
||||
(t/deftest swap-main-then-copy
|
||||
(-> (setup)
|
||||
;; Swap icon in icon+text main. Check that it propagates to copies.
|
||||
(tho/swap-component-in-shape :copy-component-1 :component-2 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#222222" "#222222" "#222222"])))
|
||||
|
||||
;; Change color of icon in icon+text main. Check that it propagates to copies.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#333333" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#333333" "#333333"])))
|
||||
|
||||
;; Swap icon inside panel main. Check it propagates to panel copy.
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text :component-1 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#111111" "#111111"])))
|
||||
|
||||
;; Change color of icon in icon+text. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#444444" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#444444" "#111111" "#111111"])))
|
||||
|
||||
;; Change color of icon in panel main. Check that it propagates.
|
||||
(tho/update-bottom-color :frame-panel "#555555" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#444444" "#555555" "#555555"])))))
|
||||
|
||||
(t/deftest swap-copy-then-main
|
||||
(-> (setup)
|
||||
;; Swap icon inside panel main. Check that it propagates to panel copy.
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text :component-2 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#111111" "#222222" "#222222"])))
|
||||
|
||||
;; Change color of icon in icon+text. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#333333" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#222222" "#222222"])))
|
||||
|
||||
;;Change color of icon in panel main. Check that it propagates
|
||||
(tho/update-bottom-color :frame-panel "#444444" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#444444" "#444444"])))
|
||||
|
||||
;; Swap icon in icon+text main. Check that it does not propagate.
|
||||
(tho/swap-component-in-shape :copy-component-1 :component-2 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#222222" "#444444" "#444444"])))
|
||||
|
||||
;; Change color of icon in icon+text. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#555555" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#555555" "#444444" "#444444"])))))
|
||||
|
||||
(t/deftest swap-copy-then-2nd-copy
|
||||
(-> (setup)
|
||||
;; Swap icon inside panel main. Check that it propagates to panel copy.
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text :component-2 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#111111" "#222222" "#222222"])))
|
||||
|
||||
;; Swap icon inside panel copy.
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text-panel :component-1 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#111111" "#222222" "#111111"])))
|
||||
|
||||
;; Change color of icon in icon+text. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#333333" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#222222" "#111111"])))
|
||||
|
||||
;; Change color of icon in panel main. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-panel "#444444" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#333333" "#444444" "#111111"])))))
|
||||
|
||||
(t/deftest swap-2nd-copy-then-copy
|
||||
(-> (setup)
|
||||
;; Swap icon inside panel copy
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text-panel :component-2 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#111111" "#111111" "#222222"])))
|
||||
|
||||
;; Swap icon inside panel main. Check that it does not propagate.
|
||||
(tho/swap-component-in-first-child :copy-icon-and-text :component-3 :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#111111" "#333333" "#222222"])))
|
||||
|
||||
;; Change color of icon in icon+text. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-icon-and-text "#444444" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#444444" "#333333" "#222222"])))
|
||||
|
||||
;; Change color of icon in panel main. Check that it does not propagate.
|
||||
(tho/update-bottom-color :frame-panel "#555555" :propagate-fn propagate-all-component-changes)
|
||||
(validate #(t/is (= (fill-colors %) ["#444444" "#555555" "#222222"])))))
|
Loading…
Add table
Reference in a new issue