diff options
Diffstat (limited to 'test/ngMock/angular-mocksSpec.js')
| -rw-r--r-- | test/ngMock/angular-mocksSpec.js | 84 |
1 files changed, 52 insertions, 32 deletions
diff --git a/test/ngMock/angular-mocksSpec.js b/test/ngMock/angular-mocksSpec.js index 13e08a68..88e1876f 100644 --- a/test/ngMock/angular-mocksSpec.js +++ b/test/ngMock/angular-mocksSpec.js @@ -319,7 +319,7 @@ describe('ngMock', function() { browser.defer(logFn('B'), 2); browser.defer(logFn('C'), 3); - browser.defer.flush(0); + expect(function() {browser.defer.flush(0);}).toThrow('No deferred tasks with delay up to 0ms to be flushed!'); expect(browser.defer.now).toEqual(0); expect(log).toEqual(''); @@ -333,7 +333,15 @@ describe('ngMock', function() { }); it('should throw an exception if there is nothing to be flushed', function() { - expect(function() {browser.defer.flush();}).toThrow('No deferred tasks to be flushed'); + expect(function() {browser.defer.flush();}).toThrow('No deferred tasks to be flushed!'); + }); + + it('should throw an exception if there is nothing to be flushed within the delay provided', function() { + browser.defer(logFn('A'), 1); + expect(function() {browser.defer.flush(0);}).toThrow('No deferred tasks with delay up to 0ms to be flushed!'); + + browser.defer.flush(1); + expect(log).toEqual('A;'); }); }); @@ -364,52 +372,45 @@ describe('ngMock', function() { describe('$timeout', function() { - it('should expose flush method that will flush the pending queue of tasks', inject( - function($timeout) { - var logger = [], - logFn = function(msg) { return function() { logger.push(msg) }}; + var log, $timeout; - $timeout(logFn('t1')); - $timeout(logFn('t2'), 200); - $timeout(logFn('t3')); - expect(logger).toEqual([]); + beforeEach(module(provideLog)); - $timeout.flush(); - expect(logger).toEqual(['t1', 't3', 't2']); + beforeEach(inject(function(_log_, _$timeout_) { + log = _log_; + $timeout = _$timeout_; })); - it('should throw an exception when not flushed', inject(function($timeout){ - $timeout(noop); - - var expectedError = 'Deferred tasks to flush (1): {id: 0, time: 0}'; - expect(function() {$timeout.verifyNoPendingTasks();}).toThrow(expectedError); - })); + it('should expose flush method that will flush the pending queue of tasks', function() { - it('should do nothing when all tasks have been flushed', inject(function($timeout) { - $timeout(noop); + $timeout(log.fn('t1')); + $timeout(log.fn('t2'), 200); + $timeout(log.fn('t3')); + expect(log).toEqual([]); $timeout.flush(); - expect(function() {$timeout.verifyNoPendingTasks();}).not.toThrow(); - })); + expect(log).toEqual(['t1', 't3', 't2']); + }); - it('should check against the delay if provided within timeout', inject(function($timeout) { - $timeout(noop, 100); + it('should flush tasks only up to a delay if flush delay is provided', function() { + $timeout(log.fn('t1'), 100); $timeout.flush(100); - expect(function() {$timeout.verifyNoPendingTasks();}).not.toThrow(); + expect(log).toEqual(['t1']); - $timeout(noop, 1000); - $timeout.flush(100); - expect(function() {$timeout.verifyNoPendingTasks();}).toThrow(); + $timeout(log.fn('t2'), 1000); + expect(function() {$timeout.flush(100);}).toThrow(); + expect(log).toEqual(['t1']); $timeout.flush(900); - expect(function() {$timeout.verifyNoPendingTasks();}).not.toThrow(); - })); + expect(log).toEqual(['t1', 't2']); + expect(function() {$timeout.flush();}).toThrow(); + }); - it('should assert against the delay value', inject(function($timeout) { + it('should assert against the delay value', function() { var count = 0; var iterate = function() { count++; @@ -421,7 +422,26 @@ describe('ngMock', function() { expect(count).toBe(1); $timeout.flushNext(123); expect(count).toBe(2); - })); + }); + + + describe('verifyNoPendingTasks', function() { + + it('should throw an exception when not flushed', function() { + $timeout(noop); + + var expectedError = 'Deferred tasks to flush (1): {id: 0, time: 0}'; + expect(function() {$timeout.verifyNoPendingTasks();}).toThrow(expectedError); + }); + + + it('should do nothing when all tasks have been flushed', function() { + $timeout(noop); + + $timeout.flush(); + expect(function() {$timeout.verifyNoPendingTasks();}).not.toThrow(); + }); + }); }); |
