diff options
Diffstat (limited to 'test/servicesSpec.js')
| -rw-r--r-- | test/servicesSpec.js | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/test/servicesSpec.js b/test/servicesSpec.js index 5a9a4702..bda7b47c 100644 --- a/test/servicesSpec.js +++ b/test/servicesSpec.js @@ -361,12 +361,41 @@ describe("service", function(){ it('should delegate exception to the $exceptionHandler service', function() { - $defer(function() { throw "Test Error"; }); + $defer(function() {throw "Test Error";}); expect($exceptionHandler).not.toHaveBeenCalled(); $browser.defer.flush(); expect($exceptionHandler).toHaveBeenCalledWith("Test Error"); }); + + + it('should call eval after each callback is executed', function() { + var eval = this.spyOn(scope, '$eval').andCallThrough(); + + $defer(function() {}); + expect(eval).wasNotCalled(); + + $browser.defer.flush(); + expect(eval).wasCalled(); + + eval.reset(); //reset the spy; + + $defer(function() {}); + $defer(function() {}); + $browser.defer.flush(); + expect(eval.callCount).toBe(2); + }); + + + it('should call eval even if an exception is thrown in callback', function() { + var eval = this.spyOn(scope, '$eval').andCallThrough(); + + $defer(function() {throw "Test Error"}); + expect(eval).wasNotCalled(); + + $browser.defer.flush(); + expect(eval).wasCalled(); + }); }); @@ -543,6 +572,25 @@ describe("service", function(){ $browser.defer.flush(); expect(log).toEqual('"+";"+";'); //callback has executed }); + + it('should call eval after callbacks for both cache hit and cache miss execute', function() { + var eval = this.spyOn(scope, '$eval').andCallThrough(); + + $browserXhr.expectGET('/url').respond('+'); + cache('GET', '/url', null, callback); + expect(eval).wasNotCalled(); + + $browserXhr.flush(); + expect(eval).wasCalled(); + + eval.reset(); //reset the spy + + cache('GET', '/url', null, callback); + expect(eval).wasNotCalled(); + + $browser.defer.flush(); + expect(eval).wasCalled(); + }) }); }); |
