mirror of
https://github.com/penpot/penpot.git
synced 2025-05-30 16:16:11 +02:00
✨ Allow importing token files with reference errors (#6374)
* ✨ Allow importing token files with reference errors * ✨ Add test for missing references
This commit is contained in:
parent
46709fb02e
commit
92f5b5f92b
2 changed files with 10 additions and 12 deletions
|
@ -314,11 +314,11 @@
|
|||
(resolve-tokens-with-errors+)
|
||||
(p/then (fn [_] tokens-lib))
|
||||
(p/catch (fn [sd-error]
|
||||
(let [reference-errors (reference-errors sd-error)
|
||||
err (if reference-errors
|
||||
(wte/error-ex-info :error.import/style-dictionary-reference-errors reference-errors sd-error)
|
||||
(wte/error-ex-info :error.import/style-dictionary-unknown-error sd-error sd-error))]
|
||||
(throw err)))))
|
||||
(let [reference-errors (reference-errors sd-error)]
|
||||
;; We allow reference errors for the users to resolve in the ui and throw on any other errors
|
||||
(if reference-errors
|
||||
(p/resolved tokens-lib)
|
||||
(throw (wte/error-ex-info :error.import/style-dictionary-unknown-error sd-error sd-error)))))))
|
||||
(catch js/Error e
|
||||
(p/rejected (wte/error-ex-info :error.import/style-dictionary-unknown-error "" e))))))))))
|
||||
|
||||
|
|
|
@ -120,19 +120,17 @@ color.value tries to reference missing, which is not defined.")))
|
|||
(t/deftest process-missing-references-json-test
|
||||
(t/async
|
||||
done
|
||||
(t/testing "fails on missing references in tokens"
|
||||
(t/testing "allows missing references in tokens"
|
||||
(let [json (-> {"core" {"color" {"$value" "{missing}"
|
||||
"$type" "color"}}
|
||||
"$metadata" {"tokenSetOrder" ["core"]}}
|
||||
(tr/encode-str {:type :json-verbose}))]
|
||||
(->> (rx/of json)
|
||||
(sd/process-json-stream)
|
||||
(rx/subs!
|
||||
(fn []
|
||||
(throw (js/Error. "Should be an error")))
|
||||
(fn [err]
|
||||
(t/is (= :error.import/style-dictionary-reference-errors (:error/code (ex-data err))))
|
||||
(done))))))))
|
||||
(rx/subs! (fn [tokens-lib]
|
||||
(t/is (instance? ctob/TokensLib tokens-lib))
|
||||
(t/is (= "{missing}" (:value (ctob/get-token-in-set tokens-lib "core" "color"))))
|
||||
(done))))))))
|
||||
|
||||
(t/deftest single-set-legacy-json-decoding
|
||||
(let [decode-single-set-legacy-json #'sd/decode-single-set-legacy-json
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue