diff options
| author | Igor Minar | 2011-01-25 20:44:44 -0800 |
|---|---|---|
| committer | Igor Minar | 2011-01-26 15:46:05 -0800 |
| commit | f5d08963b0c836b10133a94d03a81254242661eb (patch) | |
| tree | 14c525d0aa22193e5b1a1f8aa791b96608dc83b2 /test/ScopeSpec.js | |
| parent | 7a48ee6aa949e8d4338033de8a0c6a079ceb17a3 (diff) | |
| download | angular.js-f5d08963b0c836b10133a94d03a81254242661eb.tar.bz2 | |
split mocks and create $log and $exceptionHandler mocks
- split mocks between angular-mocks.js and mocks.js
- src/angular-mocks.js now contains only mocks that we want to ship
- test/mocks.js contains mocks that we use internally for testing
angular
- created angular.mock namespace
- created public $exceptionHandler mock rethrows errors
- created public $log mock stores all logs messages in an array that can
be accessed to make assertions
- internally we now have factory to create $exceptionHandler
that we can assert on
- internally we also keep track of all messages logged and
fail tests if messages were not expected and cleaned up (checked
via global beforeEach and afterEach)
- updated RakeFile and docs reader.js to point to the new
angular-mocks.js location
- made real $exceptionHandler and $log factories accessible from tests
and simplified their specs
- fixed typos in several spec descriptions
- added log assertions throughout the test suite
Diffstat (limited to 'test/ScopeSpec.js')
| -rw-r--r-- | test/ScopeSpec.js | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/test/ScopeSpec.js b/test/ScopeSpec.js index 8984f605..ab1ba124 100644 --- a/test/ScopeSpec.js +++ b/test/ScopeSpec.js @@ -146,30 +146,34 @@ describe('scope/model', function(){ }); describe('$tryEval', function(){ - it('should report error on element', function(){ - var scope = createScope(); + it('should report error using the provided error handler and $log.error', function(){ + var scope = createScope(), + errorLogs = scope.$service('$log').error.logs; + scope.$tryEval(function(){throw "myError";}, function(error){ scope.error = error; }); expect(scope.error).toEqual('myError'); + expect(errorLogs.shift()[0]).toBe("myError"); }); it('should report error on visible element', function(){ - var element = jqLite('<div></div>'); - var scope = createScope(); + var element = jqLite('<div></div>'), + scope = createScope(), + errorLogs = scope.$service('$log').error.logs; + scope.$tryEval(function(){throw "myError";}, element); expect(element.attr('ng-exception')).toEqual('myError'); expect(element.hasClass('ng-exception')).toBeTruthy(); + expect(errorLogs.shift()[0]).toBe("myError"); }); it('should report error on $excetionHandler', function(){ - var errors = [], - errorLogs = [], - scope = createScope(null, {}, {$exceptionHandler: function(e) {errors.push(e)}, - $log: {error: function(e) {errorLogs.push(e)}}}); + var scope = createScope(null, {$exceptionHandler: $exceptionHandlerMockFactory}, + {$log: $logMock}); scope.$tryEval(function(){throw "myError";}); - expect(errors).toEqual(["myError"]); - expect(errorLogs).toEqual(["myError"]); + expect(scope.$service('$exceptionHandler').errors.shift()).toEqual("myError"); + expect(scope.$service('$log').error.logs.shift()).toEqual(["myError"]); }); }); |
