diff --git a/lib/jasmine-core/jasmine.js b/lib/jasmine-core/jasmine.js index 708b3b70..58887e75 100644 --- a/lib/jasmine-core/jasmine.js +++ b/lib/jasmine-core/jasmine.js @@ -60,7 +60,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) { j$.Any = jRequire.Any(j$); j$.Anything = jRequire.Anything(j$); j$.CallTracker = jRequire.CallTracker(j$); - j$.MockDate = jRequire.MockDate(); + j$.MockDate = jRequire.MockDate(j$); j$.getClearStack = jRequire.clearStack(j$); j$.Clock = jRequire.Clock(); j$.DelayedFunctionScheduler = jRequire.DelayedFunctionScheduler(j$); @@ -7774,7 +7774,7 @@ getJasmineRequireObj().toThrowMatching = function(j$) { return toThrowMatching; }; -getJasmineRequireObj().MockDate = function() { +getJasmineRequireObj().MockDate = function(j$) { function MockDate(global) { var self = this; var currentTime = 0; @@ -7792,6 +7792,14 @@ getJasmineRequireObj().MockDate = function() { if (mockDate instanceof GlobalDate) { currentTime = mockDate.getTime(); } else { + if (!j$.util.isUndefined(mockDate)) { + j$.getEnv().deprecated( + 'The argument to jasmine.clock().mockDate(), if specified, ' + + 'should be a Date instance. Passing anything other than a Date ' + + 'will be treated as an error in a future release.' + ); + } + currentTime = new GlobalDate().getTime(); } diff --git a/spec/core/ClockSpec.js b/spec/core/ClockSpec.js index 2aba566b..126fe8ca 100644 --- a/spec/core/ClockSpec.js +++ b/spec/core/ClockSpec.js @@ -950,6 +950,28 @@ describe('Clock (acceptance)', function() { expect(timeoutDate).toEqual(baseTime.getTime() + 150); }); + it('logs a deprecation when mockDate is called with a non-Date', function() { + var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(), + global = { Date: Date }, + mockDate = new jasmineUnderTest.MockDate(global), + clock = new jasmineUnderTest.Clock( + { setTimeout: setTimeout }, + function() { + return delayedFunctionScheduler; + }, + mockDate + ), + env = jasmineUnderTest.getEnv(); + + spyOn(env, 'deprecated'); + clock.mockDate(12345); + expect(env.deprecated).toHaveBeenCalledWith( + 'The argument to jasmine.clock().mockDate(), if specified, should be ' + + 'a Date instance. Passing anything other than a Date will be ' + + 'treated as an error in a future release.' + ); + }); + it('mocks the Date object and updates the date per delayed function', function() { var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(), global = { Date: Date }, diff --git a/src/core/MockDate.js b/src/core/MockDate.js index 7b642038..74a6956f 100644 --- a/src/core/MockDate.js +++ b/src/core/MockDate.js @@ -1,4 +1,4 @@ -getJasmineRequireObj().MockDate = function() { +getJasmineRequireObj().MockDate = function(j$) { function MockDate(global) { var self = this; var currentTime = 0; @@ -16,6 +16,14 @@ getJasmineRequireObj().MockDate = function() { if (mockDate instanceof GlobalDate) { currentTime = mockDate.getTime(); } else { + if (!j$.util.isUndefined(mockDate)) { + j$.getEnv().deprecated( + 'The argument to jasmine.clock().mockDate(), if specified, ' + + 'should be a Date instance. Passing anything other than a Date ' + + 'will be treated as an error in a future release.' + ); + } + currentTime = new GlobalDate().getTime(); } diff --git a/src/core/requireCore.js b/src/core/requireCore.js index 1a2ee522..1b8b5238 100644 --- a/src/core/requireCore.js +++ b/src/core/requireCore.js @@ -38,7 +38,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) { j$.Any = jRequire.Any(j$); j$.Anything = jRequire.Anything(j$); j$.CallTracker = jRequire.CallTracker(j$); - j$.MockDate = jRequire.MockDate(); + j$.MockDate = jRequire.MockDate(j$); j$.getClearStack = jRequire.clearStack(j$); j$.Clock = jRequire.Clock(); j$.DelayedFunctionScheduler = jRequire.DelayedFunctionScheduler(j$);