mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
feat(ngMock): $timeout.flushNext can expect specific timeout delays
the $timeout mock's flush method allows flushing queued up requests but doesn't allow to for checking with what delay a task was queued up. flushNext flushes the next queued up task and can asserts the scheduled delay.
This commit is contained in:
parent
b7fdabc4bf
commit
462ed033d5
2 changed files with 45 additions and 0 deletions
30
src/ngMock/angular-mocks.js
vendored
30
src/ngMock/angular-mocks.js
vendored
|
|
@ -118,6 +118,22 @@ angular.mock.$Browser = function() {
|
|||
self.deferredFns.shift().fn();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @name ngMock.$browser#defer.flushNext
|
||||
* @methodOf ngMock.$browser
|
||||
*
|
||||
* @description
|
||||
* Flushes next pending request and compares it to the provided delay
|
||||
*
|
||||
* @param {number=} expectedDelay the delay value that will be asserted against the delay of the next timeout function
|
||||
*/
|
||||
self.defer.flushNext = function(expectedDelay) {
|
||||
var tick = self.deferredFns.shift();
|
||||
expect(tick.time).toEqual(expectedDelay);
|
||||
tick.fn();
|
||||
};
|
||||
|
||||
/**
|
||||
* @name ngMock.$browser#defer.now
|
||||
* @propertyOf ngMock.$browser
|
||||
|
|
@ -1494,6 +1510,20 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
|
|||
$browser.defer.flush(delay);
|
||||
};
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name ngMock.$timeout#flushNext
|
||||
* @methodOf ngMock.$timeout
|
||||
* @description
|
||||
*
|
||||
* Flushes the next timeout in the queue and compares it to the provided delay
|
||||
*
|
||||
* @param {number=} expectedDelay the delay value that will be asserted against the delay of the next timeout function
|
||||
*/
|
||||
$delegate.flushNext = function(expectedDelay) {
|
||||
$browser.defer.flushNext(expectedDelay);
|
||||
};
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name ngMock.$timeout#verifyNoPendingTasks
|
||||
|
|
|
|||
15
test/ngMock/angular-mocksSpec.js
vendored
15
test/ngMock/angular-mocksSpec.js
vendored
|
|
@ -365,6 +365,21 @@ describe('ngMock', function() {
|
|||
$timeout.flush(900);
|
||||
expect(function() {$timeout.verifyNoPendingTasks();}).not.toThrow();
|
||||
}));
|
||||
|
||||
|
||||
it('should assert against the delay value', inject(function($timeout) {
|
||||
var count = 0;
|
||||
var iterate = function() {
|
||||
count++;
|
||||
};
|
||||
|
||||
$timeout(iterate, 100);
|
||||
$timeout(iterate, 123);
|
||||
$timeout.flushNext(100);
|
||||
expect(count).toBe(1);
|
||||
$timeout.flushNext(123);
|
||||
expect(count).toBe(2);
|
||||
}));
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue