diff --git a/angularjs/angular-mocks-tests.ts b/angularjs/angular-mocks-tests.ts index 86bbe6c94..294bcf898 100644 --- a/angularjs/angular-mocks-tests.ts +++ b/angularjs/angular-mocks-tests.ts @@ -87,6 +87,15 @@ logCall = logService.warn; logs = logCall.logs; +/////////////////////////////////////// +// ControllerService mock +/////////////////////////////////////// +var $controller: ng.IControllerService; +$controller(class TestController {}, {}, {myBinding: 'works!'}); +$controller(function TestController() {}, {someLocal: 42}, {myBinding: 'works!'}); +$controller('TestController', {}, {myBinding: 'works!'}); + + /////////////////////////////////////// // IComponentControllerService /////////////////////////////////////// diff --git a/angularjs/angular-mocks.d.ts b/angularjs/angular-mocks.d.ts index 429c7b526..c97471e5b 100644 --- a/angularjs/angular-mocks.d.ts +++ b/angularjs/angular-mocks.d.ts @@ -97,6 +97,18 @@ declare namespace angular { logs: string[]; } + /////////////////////////////////////////////////////////////////////////// + // ControllerService mock + // see https://docs.angularjs.org/api/ngMock/service/$controller + // This interface extends http://docs.angularjs.org/api/ng.$controller + /////////////////////////////////////////////////////////////////////////// + interface IControllerService { + // Although the documentation doesn't state this, locals are optional + (controllerConstructor: new (...args: any[]) => T, locals?: any, bindings?: any): T; + (controllerConstructor: Function, locals?: any, bindings?: any): T; + (controllerName: string, locals?: any, bindings?: any): T; + } + /////////////////////////////////////////////////////////////////////////// // ComponentControllerService // see https://docs.angularjs.org/api/ngMock/service/$componentController