From bd04316a89a0909e7a4e483839d573ce857f7622 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 2 Nov 2011 16:32:46 -0700 Subject: refactor(services): migrate angular.service -> module --- test/AngularSpec.js | 19 ------ test/BinderSpec.js | 16 ++--- test/FiltersSpec.js | 8 +-- test/InjectorSpec.js | 6 ++ test/angular-mocksSpec.js | 113 +++++++++++++++++++++++++---------- test/mocks.js | 69 --------------------- test/service/cookiesSpec.js | 2 +- test/service/exceptionHandlerSpec.js | 4 +- test/service/localeSpec.js | 2 +- test/service/logSpec.js | 4 +- test/service/scopeSpec.js | 12 ++-- test/service/snifferSpec.js | 2 +- test/testabilityPatch.js | 29 +-------- test/widget/inputSpec.js | 6 +- test/widgetsSpec.js | 8 +-- 15 files changed, 123 insertions(+), 177 deletions(-) delete mode 100644 test/mocks.js (limited to 'test') diff --git a/test/AngularSpec.js b/test/AngularSpec.js index 8902c2a9..6229120d 100644 --- a/test/AngularSpec.js +++ b/test/AngularSpec.js @@ -382,25 +382,6 @@ describe('angular', function() { expect(fake).toEqual('new'); })); - it('should not preserve properties on override', function() { - angular.service('fake', {$one: true}, {$two: true}, {three: true}); - var result = angular.service('fake', {$four: true}); - - expect(result.$one).toBeUndefined(); - expect(result.$two).toBeUndefined(); - expect(result.three).toBeUndefined(); - expect(result.$four).toBe(true); - }); - - it('should not preserve non-angular properties on override', function() { - angular.service('fake', {one: true}, {two: true}); - var result = angular.service('fake', {third: true}); - - expect(result.one).not.toBeDefined(); - expect(result.two).not.toBeDefined(); - expect(result.third).toBeTruthy(); - }); - it('should inject dependencies specified by $inject and ignore function argument name', function() { expect(angular.injector(function($provide){ $provide.factory('svc1', function() { return 'svc1'; }); diff --git a/test/BinderSpec.js b/test/BinderSpec.js index 495d98a8..6ab94401 100644 --- a/test/BinderSpec.js +++ b/test/BinderSpec.js @@ -222,8 +222,8 @@ describe('Binder', function() { })); it('IfTextBindingThrowsErrorDecorateTheSpan', inject( - function($provide){ - $provide.factory('$exceptionHandler', $exceptionHandlerMockFactory); + function($exceptionHandlerProvider){ + $exceptionHandlerProvider.mode('log'); }, function($rootScope, $exceptionHandler, $compile) { $compile('
- * it('should do some good', function() {
- * var scope = angular.scope(),
- * $log = scope.$service('$log');
- *
- * //do something that triggers a message to be logged
- * expect($log.error.logs.shift()).toEqual(['message', 'arg1', 'arg2']);
- * });
- *
- *
- * See {@link angular.mock} for more info on angular mocks.
- */
-var $logMock = {
- log: function() { $logMock.log.logs.push(concat([], arguments, 0)); },
- warn: function() { $logMock.warn.logs.push(concat([], arguments, 0)); },
- info: function() { $logMock.info.logs.push(concat([], arguments, 0)); },
- error: function() { $logMock.error.logs.push(concat([], arguments, 0)); }
-};
-$logMock.log.logs = [];
-$logMock.warn.logs = [];
-$logMock.info.logs = [];
-$logMock.error.logs = [];
-
-angular.service('$log', function() {
- return $logMock;
-});
-
-
-/**
- * Factory that returns mock implementation of {@link angular.service.$exceptionHandler} that
- * gathers all errors in an array. This array is exposed as `errors` property of the mock and can be
- * accessed as `$exceptionHandler.errors`.
- *
- * Note that this factory is not registered with angular's injector by default (as opposed to
- * `$logMock`). It is your responsibility to register this factory when you need it. Typically like
- * this:
- *
- *
- * var scope = angular.scope(null, {'$exceptionHandler': $exceptionHandlerMockFactory()});
- *
- *
- */
-function $exceptionHandlerMockFactory() {
- var mockHandler = function(e) {
- mockHandler.errors.push(e);
- };
- mockHandler.errors = [];
-
- return mockHandler;
-}
diff --git a/test/service/cookiesSpec.js b/test/service/cookiesSpec.js
index 66bdc504..d73923a6 100644
--- a/test/service/cookiesSpec.js
+++ b/test/service/cookiesSpec.js
@@ -3,7 +3,7 @@
describe('$cookies', function() {
beforeEach(inject(function($provide) {
$provide.factory('$browser', function(){
- return angular.extend(new MockBrowser(), {cookieHash: {preexisting:'oldCookie'}});
+ return angular.extend(new angular.mock.$Browser(), {cookieHash: {preexisting:'oldCookie'}});
});
}));
diff --git a/test/service/exceptionHandlerSpec.js b/test/service/exceptionHandlerSpec.js
index 821ad7b8..00abff30 100644
--- a/test/service/exceptionHandlerSpec.js
+++ b/test/service/exceptionHandlerSpec.js
@@ -5,11 +5,9 @@ describe('$exceptionHandler', function() {
it('should log errors', inject(
function($provide){
- $provide.factory('$exceptionHandler', $exceptionHandlerFactory);
- $provide.value('$log', $logMock);
+ $provide.service('$exceptionHandler', $ExceptionHandlerProvider);
},
function($log, $exceptionHandler) {
- $log.error.rethrow = false;
$exceptionHandler('myError');
expect($log.error.logs.shift()).toEqual(['myError']);
}
diff --git a/test/service/localeSpec.js b/test/service/localeSpec.js
index 86bc7b0e..83c4ecee 100644
--- a/test/service/localeSpec.js
+++ b/test/service/localeSpec.js
@@ -2,7 +2,7 @@
describe('$locale', function() {
- var $locale = angular.service('$locale')();
+ var $locale = new $LocaleProvider().$get();
it('should have locale id set to en-us', function() {
expect($locale.id).toBe('en-us');
diff --git a/test/service/logSpec.js b/test/service/logSpec.js
index 3b860756..93e705a9 100644
--- a/test/service/logSpec.js
+++ b/test/service/logSpec.js
@@ -12,7 +12,7 @@ describe('$log', function() {
beforeEach(inject(function($provide){
$window = {};
logger = '';
- $provide.factory('$log', $logFactory);
+ $provide.service('$log', $LogProvider);
$provide.value('$exceptionHandler', rethrow);
$provide.value('$window', $window);
}));
@@ -68,7 +68,7 @@ describe('$log', function() {
e.line = undefined;
e.stack = undefined;
- $log = $logFactory({console:{error:function() {
+ $log = new $LogProvider().$get[1]({console:{error:function() {
errorArgs = arguments;
}}});
});
diff --git a/test/service/scopeSpec.js b/test/service/scopeSpec.js
index b7f50edb..88824fcd 100644
--- a/test/service/scopeSpec.js
+++ b/test/service/scopeSpec.js
@@ -2,8 +2,8 @@
describe('Scope', function() {
- beforeEach(inject(function($provide) {
- $provide.factory('$exceptionHandler', $exceptionHandlerMockFactory);
+ beforeEach(inject(function($exceptionHandlerProvider) {
+ $exceptionHandlerProvider.mode('log');
}));
@@ -121,12 +121,12 @@ describe('Scope', function() {
expect(spy).wasCalled();
}));
- it('should delegate exceptions', inject(function($rootScope, $exceptionHandler) {
+ it('should delegate exceptions', inject(function($rootScope, $exceptionHandler, $log) {
$rootScope.$watch('a', function() {throw new Error('abc');});
$rootScope.a = 1;
$rootScope.$digest();
expect($exceptionHandler.errors[0].message).toEqual('abc');
- $logMock.error.logs.length = 0;
+ $log.assertEmpty();
}));
@@ -422,7 +422,7 @@ describe('Scope', function() {
}));
- it('should catch exceptions', inject(function($rootScope, $exceptionHandler) {
+ it('should catch exceptions', inject(function($rootScope, $exceptionHandler, $log) {
var log = '';
var child = $rootScope.$new();
$rootScope.$watch('a', function(scope, a){ log += '1'; });
@@ -430,7 +430,7 @@ describe('Scope', function() {
child.$apply(function() { throw new Error('MyError'); });
expect(log).toEqual('1');
expect($exceptionHandler.errors[0].message).toEqual('MyError');
- $logMock.error.logs.shift();
+ $log.error.logs.shift();
}));
diff --git a/test/service/snifferSpec.js b/test/service/snifferSpec.js
index 72c32046..7ec1dc8d 100644
--- a/test/service/snifferSpec.js
+++ b/test/service/snifferSpec.js
@@ -3,7 +3,7 @@
describe('$sniffer', function() {
function sniffer($window) {
- return angular.service('$sniffer')($window);
+ return new $SnifferProvider().$get[1]($window);
}
describe('history', function() {
diff --git a/test/testabilityPatch.js b/test/testabilityPatch.js
index eb98cb6f..4d576ab9 100644
--- a/test/testabilityPatch.js
+++ b/test/testabilityPatch.js
@@ -77,18 +77,13 @@ beforeEach(function() {
}
});
- $logMock.log.logs = [];
- $logMock.warn.logs = [];
- $logMock.info.logs = [];
- $logMock.error.logs = [];
-
});
function inject(){
var blockFns = sliceArgs(arguments);
return function(){
var spec = this;
- spec.$injector = spec.$injector || angular.injector('NG');
+ spec.$injector = spec.$injector || angular.injector('NG', 'NG_MOCK');
angular.forEach(blockFns, function(fn){
spec.$injector.invoke(spec, fn);
});
@@ -96,30 +91,12 @@ function inject(){
}
-afterEach(inject(function($rootScope) {
+afterEach(inject(function($rootScope, $log) {
// release the injector
dealoc($rootScope);
// check $log mock
- forEach(['error', 'warn', 'info', 'log'], function(logLevel) {
- if ($logMock[logLevel].logs.length) {
- forEach($logMock[logLevel].logs, function(log) {
- forEach(log, function deleteStack(logItem) {
- if (logItem instanceof Error) {
- dump(logItem.stack);
- delete logItem.stack;
- delete logItem.arguments;
- } else {
- dump(logItem);
- }
- });
- });
-
- throw new Error("Exprected $log." + logLevel + ".logs array to be empty. " +
- "Either a message was logged unexpectedly, or an expected log message was not checked " +
- "and removed. Array contents: " + toJson($logMock[logLevel].logs));
- }
- });
+ $log.assertEmpty && $log.assertEmpty();
clearJqCache();
}));
diff --git a/test/widget/inputSpec.js b/test/widget/inputSpec.js
index 8d409b25..cd70cea4 100644
--- a/test/widget/inputSpec.js
+++ b/test/widget/inputSpec.js
@@ -448,12 +448,12 @@ describe('widget: input', function() {
});
- it('should report error on assignment error', function() {
+ it('should report error on assignment error', inject(function($log) {
expect(function() {
compile('');
}).toThrow("Syntax Error: Token '''' is an unexpected token at column 7 of the expression [throw ''] starting at [''].");
- $logMock.error.logs.shift();
- });
+ $log.error.logs.shift();
+ }));
});
diff --git a/test/widgetsSpec.js b/test/widgetsSpec.js
index ef28ea77..fc898f83 100644
--- a/test/widgetsSpec.js
+++ b/test/widgetsSpec.js
@@ -223,12 +223,12 @@ describe("widget", function() {
expect(element.text()).toEqual('name:value;');
}));
- it('should error on wrong parsing of ng:repeat', inject(function($rootScope, $compile) {
+ it('should error on wrong parsing of ng:repeat', inject(function($rootScope, $compile, $log) {
expect(function() {
var element = $compile('