Fix sandbox restore not handling stubbed functions #2667
Merged
+13
−1
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.
Purpose (TL;DR) - mandatory
Sandbox restore is not restoring functions stubbed by
stub(func). This PR aligns the behaviour ofstubandrestore.Background (Problem in detail) - optional
This is an issue when stubbing, for example, axios instances. Those are build in a way that looses their original object prototype.
stub(axios)will work fine and stub all methods as expected, butrestorewont work.Solution - optional
The issue can be fixed by aligning the sandbox code
sinon/lib/sinon/sandbox.js
Lines 410 to 411 in 2605504
with the stub code
sinon/lib/sinon/stub.js
Lines 91 to 94 in 2605504
How to verify - mandatory
npm installnpm run testChecklist for author
npm run lintpasses