Support primitives in an anyOf
from the parameters coercer
#67
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 was running
stripe-ruby
's test suite against a recent version of theOpenAPI, and noticed that unfortunately, recent updates have broken it.
In particular, the new tiers feature under plan creation now has a
primitive type nested in an
anyOf
, which is something that we've neverhad to handle before:
stripe-ruby
tries to run this against it:What's supposed to happen is that "100" is coerced to an integer, but it's not
because the integer possibility is nested in an
anyOf
as seen above.This patch addresses the problem by allowing the coercer to recurse into an
anyOf
to try coercion. It's able to theoretically handle any number ofanyOf
possibilities, and will dutifully try coercing each one until it findsa coercable type (or it doesn't, which is okay).
I've run
stripe-ruby
's test suite against a version ofstripe-mock
withthis patch in it to verify that it works.
r? @tmaxwell-stripe (This one should be a little simpler to review than the other PR.)
cc @stripe/api-libraries