From 462ed033d512ae94cb188efc9453de84ace4e17e Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Wed, 24 Jul 2013 23:22:09 -0400 Subject: 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. --- src/ngMock/angular-mocks.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src') diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index aed67c29..e05e7a28 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -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 -- cgit v1.2.3