Allow stub or spy Date object safely using a closure to get a clean copy #506
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.
Hi, I'm using Jasmine for my open source projects and in my job, and I had some problems when trying to stub or spy Date object using Jasmine spies or Sinon.js stubs.
The problem is that Jasmine uses the original Date object for timers and if you stub or spy the object then you can't use Jasmine because it fails when it tries to execute the 'getTime' method.
The solution I propose is to store a clean copy of the original Date object using a closure to store and use it even if the original object has been stubbed or spied in any other test.
I've not created a new test because the original behaviour should became the same.