From f08796a3d2af70fa1000629bc752331c04f8511f Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Wed, 24 Aug 2016 17:46:55 +0100 Subject: [PATCH] Improved type safety --- .../AlfrescoAuthentication.service.spec.ts | 29 ++++++++++--------- .../AlfrescoAuthentication.service.ts | 4 +-- .../src/services/AlfrescoContent.spec.ts | 2 ++ .../src/components/document-list.ts | 2 +- .../services/document-list.service.spec.ts | 4 ++- .../src/services/document-list.service.ts | 14 ++++----- 6 files changed, 30 insertions(+), 25 deletions(-) diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.spec.ts index 34e9ccf2f6..18273cbe1d 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.spec.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.spec.ts @@ -19,19 +19,26 @@ import {it, describe, beforeEach, afterEach} from '@angular/core/testing'; import {ReflectiveInjector, provide} from '@angular/core'; import {AlfrescoSettingsService} from './AlfrescoSettings.service'; import {AlfrescoAuthenticationService} from './AlfrescoAuthentication.service'; +import { AlfrescoApiService } from './AlfrescoApi.service'; declare var AlfrescoApi: any; declare let jasmine: any; describe('AlfrescoAuthentication', () => { - let injector, authService; + let injector; + let authService: AlfrescoAuthenticationService; + let settingsService: AlfrescoSettingsService; beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ - provide(AlfrescoSettingsService, {useClass: AlfrescoSettingsService}), + AlfrescoSettingsService, + AlfrescoApiService, AlfrescoAuthenticationService ]); + authService = injector.get(AlfrescoAuthenticationService); + settingsService = injector.get(AlfrescoSettingsService); + let store = {}; spyOn(localStorage, 'getItem').and.callFake(function (key) { @@ -61,8 +68,7 @@ describe('AlfrescoAuthentication', () => { describe('when the setting is ECM', () => { beforeEach(() => { - authService = injector.get(AlfrescoAuthenticationService); - authService.alfrescoSetting.setProviders('ECM'); + settingsService.setProviders('ECM'); }); it('should return an ECM ticket after the login done', (done) => { @@ -144,8 +150,7 @@ describe('AlfrescoAuthentication', () => { describe('when the setting is BPM', () => { beforeEach(() => { - authService = injector.get(AlfrescoAuthenticationService); - authService.alfrescoSetting.setProviders('BPM'); + settingsService.setProviders('BPM'); }); it('should return an BPM ticket after the login done', (done) => { @@ -212,24 +217,23 @@ describe('AlfrescoAuthentication', () => { describe('Setting service change should reflect in the api', () => { beforeEach(() => { - authService = injector.get(AlfrescoAuthenticationService); - authService.alfrescoSetting.setProviders('ALL'); + settingsService.setProviders('ALL'); }); it('should host ecm url change be reflected in the api configuration', () => { - authService.alfrescoSetting.ecmHost = '127.99.99.99'; + settingsService.ecmHost = '127.99.99.99'; expect(authService.getAlfrescoApi().config.hostEcm).toBe('127.99.99.99'); }); it('should host bpm url change be reflected in the api configuration', () => { - authService.alfrescoSetting.bpmHost = '127.99.99.99'; + settingsService.bpmHost = '127.99.99.99'; expect(authService.getAlfrescoApi().config.hostBpm).toBe('127.99.99.99'); }); it('should host bpm provider change be reflected in the api configuration', () => { - authService.alfrescoSetting.setProviders('ECM'); + settingsService.setProviders('ECM'); expect(authService.getAlfrescoApi().config.provider).toBe('ECM'); }); @@ -239,8 +243,7 @@ describe('AlfrescoAuthentication', () => { describe('when the setting is both ECM and BPM ', () => { beforeEach(() => { - authService = injector.get(AlfrescoAuthenticationService); - authService.providers = 'ALL'; + settingsService.setProviders('ALL'); }); it('should return both ECM and BPM tickets after the login done', (done) => { diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts index 9a22bdbde2..174c626ae2 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoAuthentication.service.ts @@ -76,7 +76,7 @@ export class AlfrescoAuthenticationService { * @param password * @returns {Observable|Observable} */ - login(username: string, password: string) { + login(username: string, password: string): Observable<{ type: string, ticket: any }> { return Observable.fromPromise(this.callApiLogin(username, password)) .map((response: any) => { this.saveTickets(); @@ -196,7 +196,7 @@ export class AlfrescoAuthenticationService { return Observable.throw(error || 'Server error'); } - getAlfrescoApi(): any { + getAlfrescoApi(): AlfrescoJsApi { return this.alfrescoApi; } } diff --git a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts index 922f976d63..064fb7f0b2 100644 --- a/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts +++ b/ng2-components/ng2-alfresco-core/src/services/AlfrescoContent.spec.ts @@ -20,6 +20,7 @@ import {ReflectiveInjector} from '@angular/core'; import {AlfrescoSettingsService} from './AlfrescoSettings.service'; import {AlfrescoAuthenticationService} from './AlfrescoAuthentication.service'; import {AlfrescoContentService} from './AlfrescoContent.service'; +import { AlfrescoApiService } from './AlfrescoApi.service'; describe('AlfrescoContentService', () => { @@ -29,6 +30,7 @@ describe('AlfrescoContentService', () => { beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ + AlfrescoApiService, AlfrescoContentService, AlfrescoAuthenticationService, AlfrescoSettingsService diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts index 54394d654c..36e2f87ada 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts +++ b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts @@ -30,6 +30,7 @@ import { HostListener } from '@angular/core'; import { Subject } from 'rxjs/Rx'; +import { MinimalNodeEntity } from 'alfresco-js-api'; import { CONTEXT_MENU_DIRECTIVES, AlfrescoTranslationService @@ -43,7 +44,6 @@ import { } from 'ng2-alfresco-datatable'; import { DocumentListService } from './../services/document-list.service'; -import { MinimalNodeEntity } from './../models/document-library.model'; import { ContentActionModel } from './../models/content-action.model'; import { ShareDataTableAdapter, diff --git a/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.spec.ts b/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.spec.ts index 21bb90e4c5..036d9eacde 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.spec.ts +++ b/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.spec.ts @@ -24,7 +24,8 @@ import { import { AlfrescoSettingsService, AlfrescoAuthenticationService, - AlfrescoContentService + AlfrescoContentService, + AlfrescoApiService } from 'ng2-alfresco-core'; import { FileNode } from '../assets/document-library.model.mock'; import { ReflectiveInjector } from '@angular/core'; @@ -42,6 +43,7 @@ describe('DocumentListService', () => { beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ HTTP_PROVIDERS, + AlfrescoApiService, AlfrescoAuthenticationService, AlfrescoSettingsService ]); diff --git a/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.ts b/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.ts index dced40e264..c73b96182c 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.ts +++ b/ng2-components/ng2-alfresco-documentlist/src/services/document-list.service.ts @@ -18,14 +18,12 @@ import { Injectable } from '@angular/core'; import { Response } from '@angular/http'; import { Observable } from 'rxjs/Rx'; -import { NodePaging, MinimalNodeEntity } from './../models/document-library.model'; +import { AlfrescoJsApi, NodePaging, MinimalNodeEntity } from 'alfresco-js-api'; import { AlfrescoAuthenticationService, AlfrescoContentService } from 'ng2-alfresco-core'; -declare let AlfrescoApi: any; - @Injectable() export class DocumentListService { @@ -66,11 +64,11 @@ export class DocumentListService { ) { } - private getAlfrescoApi() { + private getAlfrescoApi(): AlfrescoJsApi { return this.authService.getAlfrescoApi(); } - private getNodesPromise(folder: string, opts?: any) { + private getNodesPromise(folder: string, opts?: any): Promise { let nodeId = '-root-'; let params: any = { relativePath: folder, @@ -86,11 +84,11 @@ export class DocumentListService { } } - return this.getAlfrescoApi().node.getNodeChildren(nodeId, params); + return this.getAlfrescoApi().nodes.getNodeChildren(nodeId, params); } - deleteNode(nodeId: string) { - return Observable.fromPromise(this.getAlfrescoApi().node.deleteNode(nodeId)); + deleteNode(nodeId: string): Observable { + return Observable.fromPromise(this.getAlfrescoApi().nodes.deleteNode(nodeId)); } /**