Restore sinon.createStubInstance() behaviour #2075
Merged
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
Fix issue #2073 by reusing
createStubInstance()
behaviour fromstub.js
while maintaining the sandboxcollection
.Background (Problem in detail) - optional
PR #2022 redirected
sinon.createStubInstance()
to use the Sandbox implementation thereof. This introduced a breaking change due to the sandbox implementation not supporting property overrides.Solution - optional
This PR extends
sandbox.createStubInstance()
to mimic the behaviour of the originalsinon.createStubInstance()
method.Instead of duplicating the original
createStubInstance()
behaviour fromstub.js
intosandbox.js
, it now calls through to thestub.js
implementation, then adds all the stubs to the sandboxcollection
as usual.The extra tests for property overrides in
stub-test.js
have also been added tosandbox-test.js
to ensure the sandbox implementation now works the same as the originalcreateStubInstance()
, while maintaining backward compatibility with all existing sandbox tests.EDIT: Added some specific tests for issue #2073 in
issues-test.js
.How to verify - mandatory
npm install
npm test
Checklist for author
npm run lint
passes