All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
negatedflag to detect whennot_toorto_notis used - Add
passedfield to distinguish passing from failing tests in captured values
- Major code simplification - removed unnecessary abstractions and comments
- Updated documentation to reflect actual features (removed non-existent performance limits)
- BREAKING: No longer removes diff from exception messages - now a true drop-in replacement
- Fixed spec files that were causing false CI failures
- Updated integration tests to match current behavior
- Removed automatic diff stripping from exception messages (introduced in 0.6.1)
- Capture expected/actual values for passing tests (not just failures)
- Memory-safe implementation with cleanup after formatter completes
- Special handling for Regexp serialization (human-readable format like
/pattern/flags) - Comprehensive test coverage for new features
- Fixed key mismatch bug between storage and retrieval of test values
- Fixed double-encoding issue in formatter that caused escaped strings in output
- Upgraded to Oj for JSON serialization (better performance and object handling)
- Improved error handling with detailed fallback information
- BREAKING: Moved
diffableto top level of details (fromdetails.diff_info.diffabletodetails.diffable)
- BREAKING: Renamed output key from
enriched_withtodetailsfor simplicity
- BREAKING: Renamed output key from
structured_datatoenriched_withfor better clarity
- Enhanced metadata capture (location, tags, hierarchy, described class)
- Robust error recovery during serialization with Serializer module
- diff_info.diffable field to help tools determine if values can be meaningfully diffed
- Improved serialization error handling to prevent formatter crashes
- Initial release of rspec-enriched_json
- Drop-in replacement for RSpec's built-in JSON formatter
- Structured data extraction for expectation failures
- Support for all RSpec built-in matchers
- Preservation of custom failure messages
- Rich object serialization (arrays, hashes, structs, custom objects)
- Full backward compatibility with existing JSON consumers