Fix errors when creating a predicate with a request body containing a field of type number. #768
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.
Description
I encountered an error when creating a predicate that matches the request body with type number using
contains,startsWith, orendsWith. For example, when creating a predicate for the API/transfer-moneywith an amount that starts with 200:Sending a request with an amount of 200.01 results in the following error:
Modifications
I have created three new methods (
contains,startsWith,endsWith) that check whether the actual type is a string. If it is not, the value is converted to a string before calling the.indexOfmethod.However, I'm considering instead of allow using
contains,startsWith,endsWithwith type number it might be better to throw an exception and provide more understandable error messages, such as:Or maybe we could add features such as
lessThanorgreaterThanto support specific types of numbers. What do you think?Details
Mountebank version 2.9.1