From 1cced363c05d8b15d33844f5946a4f3d468eb897 Mon Sep 17 00:00:00 2001 From: Jasmin Auger Date: Mon, 21 Mar 2016 21:13:50 -0400 Subject: [PATCH 1/2] Add angular-mocks typings. --- angularjs/angular-mocks.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/angularjs/angular-mocks.d.ts b/angularjs/angular-mocks.d.ts index ade823572..429c7b526 100644 --- a/angularjs/angular-mocks.d.ts +++ b/angularjs/angular-mocks.d.ts @@ -97,6 +97,17 @@ declare namespace angular { logs: string[]; } + /////////////////////////////////////////////////////////////////////////// + // ComponentControllerService + // see https://docs.angularjs.org/api/ngMock/service/$componentController + /////////////////////////////////////////////////////////////////////////// + interface IComponentControllerService { + // TBinding is an interface exposed by a component as per John Papa's style guide + // https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#accessible-members-up-top + (componentName: string, locals: { $scope: IScope, [key: string]: any }, bindings?: TBinding, ident?: string): T; + } + + /////////////////////////////////////////////////////////////////////////// // HttpBackendService // see https://docs.angularjs.org/api/ngMock/service/$httpBackend From ce7496396f16891e77add76509b8647fb5a88cc2 Mon Sep 17 00:00:00 2001 From: Jasmin Auger Date: Mon, 21 Mar 2016 21:25:58 -0400 Subject: [PATCH 2/2] Add tests for angular-mocks' typings. --- angularjs/angular-mocks-tests.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/angularjs/angular-mocks-tests.ts b/angularjs/angular-mocks-tests.ts index 63ea220f6..86bbe6c94 100644 --- a/angularjs/angular-mocks-tests.ts +++ b/angularjs/angular-mocks-tests.ts @@ -87,6 +87,16 @@ logCall = logService.warn; logs = logCall.logs; +/////////////////////////////////////// +// IComponentControllerService +/////////////////////////////////////// +var $componentController: ng.IComponentControllerService; +$componentController<{}, {}>('Test controller', { $scope: {} }); +$componentController<{}, {}>('Test controller', { $scope: {}, test: true }); +$componentController<{}, { test: boolean }>('Test controller', { $scope: {} }, { test: true}); +$componentController<{}, { test?: boolean }>('Test controller', { $scope: {} }, {}); +$componentController<{}, {}>('Test controller', { $scope: {} }, {}, 'identity'); +$componentController<{ cb: () => void }, {}>('Test controller', { $scope: {} }); /////////////////////////////////////// // IHttpBackendService