0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-21 14:12:36 -05:00

Add opacity tests

This commit is contained in:
Florian Schroedl 2024-08-05 11:05:49 +02:00
parent 62a9dd6582
commit 6cb3afe87f

View file

@ -165,27 +165,52 @@
(t/deftest test-apply-opacity (t/deftest test-apply-opacity
(t/testing "applies opacity token and updates the shapes opacity" (t/testing "applies opacity token and updates the shapes opacity"
(t/async (t/async
done done
(let [file (-> (setup-file) (let [file (-> (setup-file)
(toht/add-token :token-target {:value "0.5" (toht/add-token :opacity-float {:value "0.3"
:name "opacity.medium" :name "opacity.float"
:type :opacity})) :type :opacity})
store (ths/setup-store file) (toht/add-token :opacity-percent {:value "40%"
rect-1 (cths/get-shape file :rect-1) :name "opacity.percent"
events [(wtch/apply-token {:shape-ids [(:id rect-1)] :type :opacity})
:attributes #{:opacity} (toht/add-token :opacity-invalid {:value "100"
:token (toht/get-token file :token-target) :name "opacity.invalid"
:on-update-shape wtch/update-opacity})]] :type :opacity}))
(tohs/run-store-async store (ths/setup-store file)
store done events rect-1 (cths/get-shape file :rect-1)
(fn [new-state] rect-2 (cths/get-shape file :rect-2)
(let [file' (ths/get-file-from-store new-state) rect-3 (cths/get-shape file :rect-3)
token-target' (toht/get-token file' :token-target) events [(wtch/apply-token {:shape-ids [(:id rect-1)]
rect-1' (cths/get-shape file' :rect-1)] :attributes #{:opacity}
(t/is (some? (:applied-tokens rect-1'))) :token (toht/get-token file :opacity-float)
(t/is (= (:opacity (:applied-tokens rect-1')) (:id token-target'))) :on-update-shape wtch/update-opacity})
;; TODO Fix opacity shape update not working? (wtch/apply-token {:shape-ids [(:id rect-2)]
#_(t/is (= (:opacity rect-1') 0.5))))))))) :attributes #{:opacity}
:token (toht/get-token file :opacity-percent)
:on-update-shape wtch/update-opacity})
(wtch/apply-token {:shape-ids [(:id rect-3)]
:attributes #{:opacity}
:token (toht/get-token file :opacity-invalid)
:on-update-shape wtch/update-opacity})]]
(tohs/run-store-async
store done events
(fn [new-state]
(let [file' (ths/get-file-from-store new-state)
rect-1' (cths/get-shape file' :rect-1)
rect-2' (cths/get-shape file' :rect-2)
rect-3' (cths/get-shape file' :rect-3)
token-opacity-float (toht/get-token file' :opacity-float)
token-opacity-percent (toht/get-token file' :opacity-percent)
token-opacity-invalid (toht/get-token file' :opacity-invalid)]
(t/testing "float value got translated to float and applied to opacity"
(t/is (= (:opacity (:applied-tokens rect-1')) (:id token-opacity-float)))
(t/is (= (:opacity rect-1') 0.3)))
(t/testing "percentage value got translated to float and applied to opacity"
(t/is (= (:opacity (:applied-tokens rect-2')) (:id token-opacity-percent)))
(t/is (= (:opacity rect-2') 0.4)))
(t/testing "invalid opacity value got applied but did not change shape"
(t/is (= (:opacity (:applied-tokens rect-3')) (:id token-opacity-invalid)))
(t/is (nil? (:opacity rect-3')))))))))))
(t/deftest test-apply-rotation (t/deftest test-apply-rotation
(t/testing "applies rotation token and updates the shapes rotation" (t/testing "applies rotation token and updates the shapes rotation"