fix fallbackAsync
for async arg & add relevant tests
#732
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.
This PR fixes the issue related to
fallbackAsync
given any async schema.Issue:
When the validation of an async schema fails,
fallbackAsync
still returns the default value instead of the supplied fallback value. The code block given below exposes this bug.Fix:
Inside the
_run
method of the object returned byfallbackAsync
, wait for the schema to run completely before checking if the dataset has any issues. This is needed asfallbackAsync
can be given an async schema that might execute some async code.Additional information:
Simply waiting for the async code to complete fixes the issue, but I was worried about the rejected promise case. I checked some of the other methods and found out that there is no logic to catch rejected promises. I assume this is intentional, and the thought process behind this approach would be to let the user handle rejected promises. Let me know if my assumption is incorrect.