fix:$browser mock: defer.flush() should flush all fns

This commit is contained in:
Igor Minar 2011-07-01 17:03:50 -07:00
parent f606ffed4b
commit 75721223b5
2 changed files with 11 additions and 10 deletions

11
src/angular-mocks.js vendored
View file

@ -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();
}

View file

@ -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;');
});