Merge branch 'fix-clock-date' of https://github.com/andrewiggins/jasmine into andrewiggins-fix-clock-date

Fixes #915
Merges #980
This commit is contained in:
Gregg Van Hove
2015-12-22 14:49:18 -08:00
4 changed files with 42 additions and 6 deletions

View File

@@ -82,8 +82,7 @@ getJasmineRequireObj().Clock = function() {
self.tick = function(millis) {
if (installed) {
mockDate.tick(millis);
delayedFunctionScheduler.tick(millis);
delayedFunctionScheduler.tick(millis, function(millis) { mockDate.tick(millis); });
} else {
throw new Error('Mock clock is not installed, use jasmine.clock().install()');
}

View File

@@ -6,11 +6,11 @@ getJasmineRequireObj().DelayedFunctionScheduler = function() {
var currentTime = 0;
var delayedFnCount = 0;
self.tick = function(millis) {
self.tick = function(millis, tickDate) {
millis = millis || 0;
var endTime = currentTime + millis;
runScheduledFunctions(endTime);
runScheduledFunctions(endTime, tickDate);
currentTime = endTime;
};
@@ -113,13 +113,18 @@ getJasmineRequireObj().DelayedFunctionScheduler = function() {
}
}
function runScheduledFunctions(endTime) {
function runScheduledFunctions(endTime, tickDate) {
tickDate = tickDate || function() {};
if (scheduledLookup.length === 0 || scheduledLookup[0] > endTime) {
tickDate(endTime);
return;
}
do {
currentTime = scheduledLookup.shift();
var newCurrentTime = scheduledLookup.shift();
tickDate(newCurrentTime - currentTime);
currentTime = newCurrentTime;
var funcsToRun = scheduledFunctions[currentTime];
delete scheduledFunctions[currentTime];