fix(toon): treat empty key-value as nil for nilable scalar fields#242
Open
tleish wants to merge 1 commit intovicentereig:mainfrom
Open
fix(toon): treat empty key-value as nil for nilable scalar fields#242tleish wants to merge 1 commit intovicentereig:mainfrom
tleish wants to merge 1 commit intovicentereig:mainfrom
Conversation
…vicentereig#241 When the TOON codec decodes `key:` with no value, it returns `{}` per TOON spec §8. The Reconstructor now skips `{}` for types where it is not valid and the type is nilable, allowing Sorbet to apply the field's default value.
Contributor
Author
|
Added RED/failing tests for now |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Failing tests that illustrate #241 — when the TOON codec decodes
key:with no value, it returns{}per TOON spec §8. This causesTypeError: Cannot coerce Hash to Stringwhen the field is a nilable scalar likeT.nilable(String).Tests added
treats empty key-value as nil for nilable string fields—nickname:with no value should benil, not{}preserves empty key-value as empty hash for nilable hash fields—metadata:with no value should remain{}since it's a valid empty hashtreats empty key-value as nil for nilable struct with required fields—source:with no value should benilwhen the struct has required fieldsRef #241