aboutsummaryrefslogtreecommitdiffstats
path: root/test/InjectorSpec.js
diff options
context:
space:
mode:
authorIgor Minar2011-12-02 18:39:31 -0500
committerIgor Minar2011-12-07 09:41:07 -0800
commit5e4d59adf0ba4eb7f993f66b868759c24ae94f4c (patch)
tree5d96102b606becfe0a589279731059df640f1d10 /test/InjectorSpec.js
parentfd38655e6c8e58e7c7325b2a5937b26174ebdefa (diff)
downloadangular.js-5e4d59adf0ba4eb7f993f66b868759c24ae94f4c.tar.bz2
style(injector): cleanup of InjectorSpec.js
Diffstat (limited to 'test/InjectorSpec.js')
-rw-r--r--test/InjectorSpec.js37
1 files changed, 23 insertions, 14 deletions
diff --git a/test/InjectorSpec.js b/test/InjectorSpec.js
index d39fee13..24ae78fb 100644
--- a/test/InjectorSpec.js
+++ b/test/InjectorSpec.js
@@ -5,12 +5,13 @@ describe('injector', function() {
var injector;
beforeEach(inject(function($injector, $provide) {
- providers = function(name, factory, decoration){
- $provide.factory(name, extend(factory, decoration||{}));
+ providers = function(name, factory, annotations) {
+ $provide.factory(name, extend(factory, annotations||{}));
};
injector = $injector;
}));
+
it("should return same instance from calling provider", function() {
var instance = {},
original = instance;
@@ -59,6 +60,7 @@ describe('injector', function() {
}).toThrow("Unknown provider for 'idontexist'.");
});
+
it('should proved path to the missing provider', function() {
providers('a', function(idontexist) {return 1;});
providers('b', function(a) {return 2;});
@@ -97,7 +99,7 @@ describe('injector', function() {
});
- it('should invoke the passed in function with all of the dependencies as arguments', function(){
+ it('should invoke the passed-in fn with all of the dependencies as arguments', function() {
providers('c', function() {return 3;});
providers('d', function() {return 4;});
expect(injector.invoke(null, ['a', 'b', 'c', 'd', fn])).toEqual(10);
@@ -114,6 +116,7 @@ describe('injector', function() {
});
});
+
describe('annotation', function() {
it('should return $inject', function() {
function fn() {}
@@ -125,6 +128,7 @@ describe('injector', function() {
expect(inferInjectionArgs(function /* */ () {})).toEqual([]);
});
+
it('should create $inject', function() {
// keep the multi-line to make sure we can handle it
function $f_n0 /*
@@ -140,24 +144,26 @@ describe('injector', function() {
expect($f_n0.$inject).toEqual(['$a', 'b_', '_c', 'd']);
});
+
it('should handle no arg functions', function() {
function $f_n0() {}
expect(inferInjectionArgs($f_n0)).toEqual([]);
expect($f_n0.$inject).toEqual([]);
});
+
it('should handle args with both $ and _', function() {
function $f_n0($a_) {}
expect(inferInjectionArgs($f_n0)).toEqual(['$a_']);
expect($f_n0.$inject).toEqual(['$a_']);
});
+
it('should throw on non function arg', function() {
expect(function() {
inferInjectionArgs({});
}).toThrow();
});
-
});
@@ -166,6 +172,7 @@ describe('injector', function() {
expect($injector.get('$injector')).toBe($injector);
});
+
it('should define module', function() {
var log = '';
var injector = createInjector([function($provide) {
@@ -225,15 +232,16 @@ describe('injector', function() {
expect($injector.get('a')).toEqual('abc');
});
- it('should error on invalid madule name', function(){
- expect(function(){
+
+ it('should error on invalid madule name', function() {
+ expect(function() {
createInjector(['IDontExist'], {});
}).toThrow("Module 'IDontExist' is not defined!");
});
describe('$provide', function() {
- describe('value', function(){
+ describe('value', function() {
it('should configure $provide values', function() {
expect(createInjector([function($provide) {
$provide.value('value', 'abc');
@@ -242,7 +250,7 @@ describe('injector', function() {
});
- describe('factory', function(){
+ describe('factory', function() {
it('should configure $provide factory function', function() {
expect(createInjector([function($provide) {
$provide.factory('value', valueFn('abc'));
@@ -251,7 +259,7 @@ describe('injector', function() {
});
- describe('service', function(){
+ describe('service', function() {
it('should configure $provide service object', function() {
expect(createInjector([function($provide) {
$provide.service('value', {
@@ -308,7 +316,7 @@ describe('injector', function() {
var instance,
$injector,
$provide;
-
+
beforeEach(function() {
$injector = createInjector([ ['$provide', function(provide) {
($provide = provide).value('instance', instance = {name:'angular'});
@@ -321,8 +329,8 @@ describe('injector', function() {
expect($injector.get('instance')).toBe(instance);
expect($injector.get('instance')).toBe(instance);
});
-
-
+
+
it('should call functions and infer arguments', function() {
expect($injector.invoke(null, function(instance) { return instance; })).toBe(instance);
expect($injector.invoke(null, function(instance) { return instance; })).toBe(instance);
@@ -384,14 +392,15 @@ describe('injector', function() {
})).toEqual('melville:moby');
});
-
+
it('should throw usefull error on wrong argument type]', function() {
- expect(function(){
+ expect(function() {
$injector.invoke(null, {});
}).toThrow("Argument 'fn' is not a function, got Object");
});
});
+
describe('service instantiation', function() {
var $injector;