mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-22 19:23:38 +08:00
feat($interval): add a service wrapping setInterval
The $interval service simplifies creating and testing recurring tasks. This service does not increment $browser's outstanding request count, which means that scenario tests and Protractor tests will not timeout when a site uses a polling function registered by $interval. Provides a workaround for #2402. For unit tests, repeated tasks can be controlled using ngMock$interval's tick(), tickNext(), and tickAll() functions.
This commit is contained in:
@@ -165,6 +165,20 @@ describe('$timeout', function() {
|
||||
}));
|
||||
|
||||
|
||||
it('should cancel the promise', inject(function($timeout, log) {
|
||||
var promise = $timeout(noop);
|
||||
promise.then(function(value) { log('promise success: ' + value); },
|
||||
function(err) { log('promise error: ' + err); },
|
||||
function(note) { log('promise update: ' + note); });
|
||||
expect(log).toEqual([]);
|
||||
|
||||
$timeout.cancel(promise);
|
||||
$timeout.flush();
|
||||
|
||||
expect(log).toEqual(['promise error: canceled']);
|
||||
}));
|
||||
|
||||
|
||||
it('should return true if a task was successfully canceled', inject(function($timeout) {
|
||||
var task1 = jasmine.createSpy('task1'),
|
||||
task2 = jasmine.createSpy('task2'),
|
||||
|
||||
Reference in New Issue
Block a user