Repository navigation
Restore arity validation after a raising ignore_arity block - #32
Merged
Merged
Conversation
ValidatesArguments.optional disabled arity validation, ran the demonstration block, then re-enabled it with no `ensure`. If a `stubs(ignore_arity: true)` or `verify(ignore_arity: true)` block raised, validation stayed off for the rest of the fiber, so wrong-arity calls to mocks silently passed until the next Mocktail.reset (or for every later test, in suites that don't reset). Save the flag's previous value and restore it in an `ensure`. Restoring the previous value rather than unconditionally enabling also keeps a nested ignore_arity scope from re-enabling validation inside an outer one. The new `blk.call` line shifts the line numbers that Debug's internal mock-call guard allow-lists for validates_arguments.rb, so update them (untyped lib build, then src).
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.
ValidatesArguments.optional disabled arity validation, ran the demonstration block, then re-enabled it with no
ensure. If astubs(ignore_arity: true)orverify(ignore_arity: true)block raised, validation stayed off for the rest of the fiber, so wrong-arity calls to mocks silently passed until the next Mocktail.reset (or for every later test, in suites that don't reset).Save the flag's previous value and restore it in an
ensure. Restoring the previous value rather than unconditionally enabling also keeps a nested ignore_arity scope from re-enabling validation inside an outer one.The new
blk.callline shifts the line numbers that Debug's internal mock-call guard allow-lists for validates_arguments.rb, so update them (untyped lib build, then src).