Skip to content

✨ Make the common fressian module more testable#8859

Merged
niwinz merged 2 commits intostagingfrom
niwinz-staging-fressian-testing
Apr 14, 2026
Merged

✨ Make the common fressian module more testable#8859
niwinz merged 2 commits intostagingfrom
niwinz-staging-fressian-testing

Conversation

@niwinz
Copy link
Copy Markdown
Contributor

@niwinz niwinz commented Mar 31, 2026

Summary

Make the common freesian module more testable and add several additional tests

niwinz added 2 commits March 31, 2026 22:19
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 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.
@niwinz niwinz added the staging label Mar 31, 2026
@niwinz niwinz changed the title ✨ Make the common fressian ns more testable and add several tests ✨ Make the common fressian module more testable Mar 31, 2026
@luisddm luisddm self-assigned this Apr 9, 2026
@niwinz niwinz merged commit a81cded into staging Apr 14, 2026
16 checks passed
@niwinz niwinz deleted the niwinz-staging-fressian-testing branch April 14, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants