forked from angular/angular.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloaderSpec.js
87 lines (69 loc) · 2.62 KB
/
loaderSpec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
'use strict';
describe('module loader', function() {
var window;
beforeEach(function () {
window = {};
setupModuleLoader(window);
});
it('should set up namespace', function() {
expect(window.angular).toBeDefined();
expect(window.angular.module).toBeDefined();
});
it('should not override existing namespace', function() {
var angular = window.angular;
var module = angular.module;
setupModuleLoader(window);
expect(window.angular).toBe(angular);
expect(window.angular.module).toBe(module);
});
it('should record calls', function() {
var otherModule = window.angular.module('other', []);
otherModule.config('otherInit');
var myModule = window.angular.module('my', ['other'], 'config');
expect(myModule.
provider('sk', 'sv').
factory('fk', 'fv').
service('a', 'aa').
value('k', 'v').
filter('f', 'ff').
directive('d', 'dd').
controller('ctrl', 'ccc').
config('init2').
constant('abc', 123).
run('runBlock')).toBe(myModule);
expect(myModule.requires).toEqual(['other']);
expect(myModule._invokeQueue).toEqual([
['$provide', 'constant', ['abc', 123] ],
['$provide', 'provider', ['sk', 'sv'] ],
['$provide', 'factory', ['fk', 'fv'] ],
['$provide', 'service', ['a', 'aa'] ],
['$provide', 'value', ['k', 'v'] ],
['$filterProvider', 'register', ['f', 'ff'] ],
['$compileProvider', 'directive', ['d', 'dd'] ],
['$controllerProvider', 'register', ['ctrl', 'ccc']],
]);
expect(myModule._configBlocks).toEqual([
['$injector', 'invoke', ['config'] ],
['$injector', 'invoke', ['init2'] ]
]);
expect(myModule._runBlocks).toEqual(['runBlock']);
});
it('should allow module redefinition', function() {
expect(window.angular.module('a', [])).not.toBe(window.angular.module('a', []));
});
it('should complain of no module', function() {
expect(function() {
window.angular.module('dontExist');
}).toThrowMinErr("$injector", "nomod", "Module 'dontExist' is not available! You either misspelled the module name " +
"or forgot to load it. If registering a module ensure that you specify the dependencies as the second " +
"argument.");
});
it('should complain if a module is called "hasOwnProperty', function() {
expect(function() {
window.angular.module('hasOwnProperty', []);
}).toThrowMinErr('ng','badname', "hasOwnProperty is not a valid module name");
});
it('should expose `$$minErr` on the `angular` object', function() {
expect(window.angular.$$minErr).toEqual(jasmine.any(Function));
});
});