Add failing idempotence test#115
Closed
TomerAberbach wants to merge 1 commit intosindresorhus:mainfrom
Closed
Conversation
Owner
|
Thanks for the detailed investigation and property-based test! After analyzing this, the non-idempotent behavior is an intentional trade-off. The function preserves special characters like The edge case you found ( I've documented this behavior in the README to avoid confusion. Closing as won't fix. |
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.
I noticed that
camelCaseis not idempotent, which I think is a bug. i.e. ifcamelCaseis meant to return a camel-cased version of the input, then camel-casing it again should not result in a diff because it's already been camel-cased.I've added a failing property-based test for this, but haven't figured out what the implementation bug is exactly. Feel free to merge as-is, but I may update this PR with an actual bug fix if I have time.
An example of a case that fails is
"{ A":camelCase("{ A") -> "{A"camelCase(camelCase("{ A")) -> "{a"