mock $log: fixed bug, added some tests

I extracted mock $log factory into stand alone function, so we can access it and test, because this service is rewritten by real service during testing, so we can't access it through angular.$service('$log')...
This commit is contained in:
Vojta Jina 2011-02-04 01:32:55 +00:00 committed by Igor Minar
parent 94bf24e3b6
commit 9798f5e35f
2 changed files with 51 additions and 6 deletions

14
src/angular-mocks.js vendored
View file

@ -241,12 +241,14 @@ angular.service('$exceptionHandler', function(e) {
*
* See {@link angular.mock} for more info on angular mocks.
*/
angular.service('$log', function() {
angular.service('$log', MockLogFactory);
function MockLogFactory() {
var $log = {
log: function(){ $log.logs.push(arguments); },
warn: function(){ $log.logs.push(arguments); },
info: function(){ $log.logs.push(arguments); },
error: function(){ $log.logs.push(arguments); }
log: function(){ $log.log.logs.push(arguments); },
warn: function(){ $log.warn.logs.push(arguments); },
info: function(){ $log.info.logs.push(arguments); },
error: function(){ $log.error.logs.push(arguments); }
};
$log.log.logs = [];
@ -255,7 +257,7 @@ angular.service('$log', function() {
$log.error.logs = [];
return $log;
});
}
/**

View file

@ -119,3 +119,46 @@ describe('TzDate', function() {
expect(date2.getUTCSeconds()).toBe(0);
});
});
describe('$log', function() {
var $log;
beforeEach(function() {
$log = MockLogFactory();
});
it('should provide log method', function() {
expect(function() { $log.log(''); }).not.toThrow();
});
it('should provide info method', function() {
expect(function() { $log.info(''); }).not.toThrow();
});
it('should provide warn method', function() {
expect(function() { $log.warn(''); }).not.toThrow();
});
it('should provide error method', function() {
expect(function() { $log.error(''); }).not.toThrow();
});
it('should store log messages', function() {
$log.log('fake log');
expect($log.log.logs).toContain(['fake log']);
});
it('should store info messages', function() {
$log.info('fake log');
expect($log.info.logs).toContain(['fake log']);
});
it('should store warn messages', function() {
$log.warn('fake log');
expect($log.warn.logs).toContain(['fake log']);
});
it('should store error messages', function() {
$log.error('fake log');
expect($log.error.logs).toContain(['fake log']);
});
});