'use strict'; describe('$$controllerIntrospector', function () { var $controllerProvider; beforeEach(function() { module('ng'); module('ngComponentRouter'); module(function(_$controllerProvider_) { $controllerProvider = _$controllerProvider_; }); }); it('should call the introspector function whenever a controller is registered', inject(function ($$controllerIntrospector) { var spy = jasmine.createSpy(); $$controllerIntrospector(spy); function Ctrl(){} $controllerProvider.register('SomeController', Ctrl); expect(spy).toHaveBeenCalledWith('some', Ctrl); })); it('should call the introspector function whenever a controller is registered with array annotations', inject(function ($$controllerIntrospector) { var spy = jasmine.createSpy(); $$controllerIntrospector(spy); function Ctrl(foo){} $controllerProvider.register('SomeController', ['foo', Ctrl]); expect(spy).toHaveBeenCalledWith('some', Ctrl); })); it('should retrieve a constructor', inject(function ($$controllerIntrospector) { function Ctrl(foo){} $controllerProvider.register('SomeController', ['foo', Ctrl]); expect($$controllerIntrospector.getTypeByName('SomeController')).toBe(Ctrl); })); });