Files
jasmine/spec/core/TimerSpec.js
Steve Gravrock 63ac7da082 Prevent monkey patching
This doesn't affect globals (describe, it, expect, etc). Those belong to
the user and Jasmine doesn't depend on them.
2026-02-16 20:30:29 -08:00

38 lines
1.0 KiB
JavaScript

describe('Timer', function() {
it('reports the time elapsed', function() {
const fakeNow = jasmine.createSpy('fake Date.now'),
timer = new jasmineUnderTest.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() {
const origDate = Date;
beforeEach(function() {
// eslint-disable-next-line no-implicit-globals
Date = jasmine.createSpy('date spy');
});
afterEach(function() {
// eslint-disable-next-line no-implicit-globals
Date = origDate;
});
it('does not throw even though Date was taken away', function() {
const timer = new jasmineUnderTest.Timer();
expect(timer.start).not.toThrow();
expect(timer.elapsed()).toEqual(jasmine.any(Number));
});
});
isNonMonkeyPatchableClass(jasmineUnderTest.Timer, function() {
return new jasmineUnderTest.Timer();
});
});