From 75721223b56f8fa02958690dcc9c2f2445271b98 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Fri, 1 Jul 2011 17:03:50 -0700 Subject: fix:$browser mock: defer.flush() should flush all fns --- src/angular-mocks.js | 11 +++++++++-- test/angular-mocksSpec.js | 10 ++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/angular-mocks.js b/src/angular-mocks.js index 887d3520..916005a5 100644 --- a/src/angular-mocks.js +++ b/src/angular-mocks.js @@ -169,8 +169,15 @@ function MockBrowser() { self.defer.now = 0; - self.defer.flush = function(time) { - self.defer.now += (time || 0); + self.defer.flush = function(delay) { + if (angular.isDefined(delay)) { + self.defer.now += delay; + } else { + if (self.deferredFns.length) { + self.defer.now = self.deferredFns[self.deferredFns.length-1].time; + } + } + while (self.deferredFns.length && self.deferredFns[0].time <= self.defer.now) { self.deferredFns.shift().fn(); } diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js index 5463f3a0..dac691b0 100644 --- a/test/angular-mocksSpec.js +++ b/test/angular-mocksSpec.js @@ -190,16 +190,10 @@ describe('mocks', function(){ expect(log).toEqual(''); expect(browser.defer.now).toEqual(0); - browser.defer.flush(); - browser.defer.flush(); + browser.defer.flush(0); expect(log).toEqual('A;'); - browser.defer.flush(10); - expect(browser.defer.now).toEqual(10); - expect(log).toEqual('A;B;'); - - browser.defer.flush(10); - expect(browser.defer.now).toEqual(20); + browser.defer.flush(); expect(log).toEqual('A;B;C;'); }); -- cgit v1.2.3