this is too fragile. it's critical that we restore the state no matter what happens to this test, otherwise the test can start failing for one reason, causing the date not to be unpatched, causing many other tests to fail masquerading the original reason for the failure.

so you have two options here. you can use jasmine's mocking apis to spy on `now` and force the return value `andReturnFake` (jasmine will then unmock the Date object once we exit the current test or wrap the whole `it` into a new describe with `beforeEach` where you mock out `now` and `afterEach` where you restore it.

it's annoying, but not doing this will cause hours of debugging in the future.