describe("Timer", function() {
it("reports the time elapsed", function() {
var fakeNow = jasmine.createSpy('fake Date.now'),
timer = new j$.Timer({now: fakeNow});
fakeNow.and.returnValue(100);
timer.start();
fakeNow.and.returnValue(200);
expect(timer.elapsed()).toEqual(100);
});
describe("when date is stubbed, perhaps by other testing helpers", function() {
var origDate = Date;
beforeEach(function() {
Date = jasmine.createSpy('date spy');
});
afterEach(function() {
Date = origDate;
});
it("does not throw even though Date was taken away", function() {
var timer = new j$.Timer();
expect(timer.start).not.toThrow();
expect(timer.elapsed()).toEqual(jasmine.any(Number));
});
});
});