mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 11:18:36 +00:00
* ✨ Add exhaustive unit tests for app.common.fressian encode/decode Add a JVM-only test suite (41 tests, 172 assertions) for the fressian serialisation layer, covering: - All custom handlers: char, clj/keyword, clj/symbol, clj/vector, clj/set, clj/map, clj/seq, clj/ratio, clj/bigint, java/instant, OffsetDateTime, linked/map (order preserved), linked/set (order preserved) - Built-in types: nil, boolean, int, long, double (NaN, ±Inf, boundaries), String, byte[], UUID - Edge cases: empty collections, nil values, ArrayMap/HashMap size boundary, mixed key types - Penpot-domain structures: shape maps with UUID keys, nested objects maps - Correctness: encode→decode→encode idempotency, independent encode calls * ♻️ Extract fressian handler helpers to private top-level functions Extract adapt-write-handler, adapt-read-handler, and merge-handlers out of the letfn in add-handlers! into reusable private functions. Also creates xf:adapt-write-handler and xf:adapt-read-handler transducers and adds overwrite-read-handlers and overwrite-write-handlers for advanced handler override use cases.