aboutsummaryrefslogtreecommitdiffstats
path: root/test/loaderSpec.js
blob: e419a1982b3e597b27d4a7542ff1e2efa5e12c4a (plain)
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
'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.init('otherInit');

    var myModule = window.angular.module('my', ['other'], 'init');

    myModule.
      service('sk', 'sv').
      factory('fk', 'fv').
      value('k', 'v').
      filter('f', 'ff').
      init('init2');

    expect(myModule.requires).toEqual(['other']);
    expect(myModule.invokeQueue).toEqual([
      ['$injector', 'invoke', ['init'] ],
      ['$provide', 'service', ['sk', 'sv'] ],
      ['$provide', 'factory', ['fk', 'fv'] ],
      ['$provide', 'value', ['k', 'v'] ],
      ['$filterProvider', 'register', ['f', 'ff'] ],
      ['$injector', 'invoke', ['init2'] ]
    ]);
  });


  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');
    }).toThrow('No module: dontExist');
  });
});