This doesn't affect globals (describe, it, expect, etc). Those belong to the user and Jasmine doesn't depend on them.
38 lines
1.0 KiB
JavaScript
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();
|
|
});
|
|
});
|