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/servicesSpec.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/servicesSpec.js')
| -rw-r--r-- | test/servicesSpec.js | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/test/servicesSpec.js b/test/servicesSpec.js index e9b16621..c3c10552 100644 --- a/test/servicesSpec.js +++ b/test/servicesSpec.js @@ -31,8 +31,14 @@ describe("service", function(){ function warn(){ logger+= 'warn;'; } function info(){ logger+= 'info;'; } function error(){ logger+= 'error;'; } - var scope = createScope({}, angularService, {$window: {console:{log:log, warn:warn, info:info, error:error}}, $document:[{cookie:''}]}), + var scope = createScope({}, {$log: $logFactory}, + {$exceptionHandler: rethrow, + $window: {console: {log: log, + warn: warn, + info: info, + error: error}}}), $log = scope.$service('$log'); + $log.log(); $log.warn(); $log.info(); @@ -40,10 +46,12 @@ describe("service", function(){ expect(logger).toEqual('log;warn;info;error;'); }); - it('should use console.log if other not present', function(){ + it('should use console.log() if other not present', function(){ var logger = ""; function log(){ logger+= 'log;'; } - var scope = createScope({}, angularService, {$window: {console:{log:log}}, $document:[{cookie:''}]}); + var scope = createScope({}, {$log: $logFactory}, + {$window: {console:{log:log}}, + $exceptionHandler: rethrow}); var $log = scope.$service('$log'); $log.log(); $log.warn(); @@ -53,7 +61,9 @@ describe("service", function(){ }); it('should use noop if no console', function(){ - var scope = createScope({}, angularService, {$window: {}, $document:[{cookie:''}]}), + var scope = createScope({}, {$log: $logFactory}, + {$window: {}, + $exceptionHandler: rethrow}), $log = scope.$service('$log'); $log.log(); $log.warn(); @@ -61,8 +71,8 @@ describe("service", function(){ $log.error(); }); - describe('Error', function(){ - var e, $log, $console, errorArgs; + describe('error', function(){ + var e, $log, errorArgs; beforeEach(function(){ e = new Error(''); e.message = undefined; @@ -70,19 +80,19 @@ describe("service", function(){ e.line = undefined; e.stack = undefined; - $console = angular.service('$log')({console:{error:function(){ + $log = $logFactory({console:{error:function(){ errorArgs = arguments; }}}); }); it('should pass error if does not have trace', function(){ - $console.error('abc', e); + $log.error('abc', e); expect(errorArgs).toEqual(['abc', e]); }); it('should print stack', function(){ e.stack = 'stack'; - $console.error('abc', e); + $log.error('abc', e); expect(errorArgs).toEqual(['abc', 'stack']); }); @@ -90,7 +100,7 @@ describe("service", function(){ e.message = 'message'; e.sourceURL = 'sourceURL'; e.line = '123'; - $console.error('abc', e); + $log.error('abc', e); expect(errorArgs).toEqual(['abc', 'message\nsourceURL:123']); }); @@ -100,10 +110,13 @@ describe("service", function(){ describe("$exceptionHandler", function(){ it('should log errors', function(){ - var error = ''; - $log.error = function(m) { error += m; }; - scope.$service('$exceptionHandler')('myError'); - expect(error).toEqual('myError'); + var scope = createScope({}, {$exceptionHandler: $exceptionHandlerFactory}, + {$log: $logMock}), + $log = scope.$service('$log'), + $exceptionHandler = scope.$service('$exceptionHandler'); + + $exceptionHandler('myError'); + expect($log.error.logs.shift()).toEqual(['myError']); }); }); |
