From cc6a685bc4e5d0152dc5ac34c4c4cd62631bff8d Mon Sep 17 00:00:00 2001 From: Vito Albano Date: Thu, 13 Oct 2016 01:42:27 +0100 Subject: [PATCH] fixed wrong tests --- .../components/user-info.component.spec.ts | 173 ++++++++++-------- .../src/components/user-info.component.ts | 12 +- .../src/services/bpm-user.service.spec.ts | 25 ++- .../src/services/bpm-user.service.ts | 18 +- .../src/services/ecm-user.service.spec.ts | 3 +- .../src/services/ecm-user.service.ts | 11 +- 6 files changed, 145 insertions(+), 97 deletions(-) diff --git a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts index e9fede4d72..58fa3d5c1d 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.spec.ts @@ -24,16 +24,30 @@ import { AlfrescoAuthenticationService, AlfrescoContentService } from 'ng2-alfre import { ComponentFixture, TestBed, async } from '@angular/core/testing'; class StubAuthentication { - isEcmConnected: boolean; - isBpmConnected: boolean; - setIsEcmLoggedIn(logged: boolean) { this.isEcmConnected = logged; }; - setIsBpmLoggedIn(logged: boolean) { this.isBpmConnected = logged; }; - isEcmLoggedIn() { return this.isEcmConnected; }; - isBpmLoggedIn() { return this.isBpmConnected; }; + isEcmConnected: boolean; + isBpmConnected: boolean; + + setIsEcmLoggedIn(logged: boolean) { + this.isEcmConnected = logged; + }; + + setIsBpmLoggedIn(logged: boolean) { + this.isBpmConnected = logged; + }; + + isEcmLoggedIn() { + return this.isEcmConnected; + }; + + isBpmLoggedIn() { + return this.isBpmConnected; + }; } class StubAlfrescoContentService { - getContentUrl() { return 'fake/url/image/for/ecm/user'; } ; + getContentUrl() { + return 'fake/url/image/for/ecm/user'; + } ; } describe('User info component', () => { @@ -45,17 +59,17 @@ describe('User info component', () => { let fakeBpmService: FakeBpmUserService; beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ UserInfoComponent ], - providers: [{ provide: EcmUserService, useClass: FakeEcmUserService}, - { provide: BpmUserService, useClass: FakeBpmUserService}, - { provide: AlfrescoAuthenticationService, useClass: StubAuthentication }, - { provide: AlfrescoContentService, useClass: StubAlfrescoContentService } - ] - }).compileComponents().then(() => { - fixture = TestBed.createComponent(UserInfoComponent); - userInfoComp = fixture.componentInstance; - }); + TestBed.configureTestingModule({ + declarations: [UserInfoComponent], + providers: [{provide: EcmUserService, useClass: FakeEcmUserService}, + {provide: BpmUserService, useClass: FakeBpmUserService}, + {provide: AlfrescoAuthenticationService, useClass: StubAuthentication}, + {provide: AlfrescoContentService, useClass: StubAlfrescoContentService} + ] + }).compileComponents().then(() => { + fixture = TestBed.createComponent(UserInfoComponent); + userInfoComp = fixture.componentInstance; + }); })); it('should NOT have users before ngOnInit only anonymous image', () => { @@ -75,18 +89,33 @@ describe('User info component', () => { expect(userInfoComp.anonymouseImageUrl).toBeDefined(); }); + it('should format null string values in null value', () => { + let res = userInfoComp.formatValue('null'); + + expect(res).toBeDefined(); + expect(res).toBeNull(); + }); + + it('should return the value when it is not null string', () => { + let res = userInfoComp.formatValue('fake-value'); + + expect(res).toBeDefined(); + expect(res).not.toBeNull(); + expect(res).toEqual('fake-value'); + }); + describe('when user is logged on ecm', () => { - beforeEach( async(() => { + beforeEach(async(() => { authStub = fixture.debugElement.injector.get(AlfrescoAuthenticationService); fakeEcmService = fixture.debugElement.injector.get(EcmUserService); authStub.setIsEcmLoggedIn(true); fixture.detectChanges(); // runs ngOnInit -> getUsers fixture.whenStable() - .then( () => { - fixture.detectChanges(); - } ); + .then(() => { + fixture.detectChanges(); + }); })); it('should get the ecm current user image from the service', () => { @@ -105,27 +134,27 @@ describe('User info component', () => { fakeEcmService.respondWithTheUserWithoutImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let res = userInfoComp.getEcmUserAvatar(); - expect(userInfoComp.ecmUserImage).toBeUndefined(); - expect(res).toEqual(userInfoComp.anonymouseImageUrl); - }); + .then(() => { + fixture.detectChanges(); + let res = userInfoComp.getEcmUserAvatar(); + expect(userInfoComp.ecmUserImage).toBeUndefined(); + expect(res).toEqual(userInfoComp.anonymouseImageUrl); + }); })); }); describe('when user is logged on bpm', () => { - beforeEach( async(() => { + beforeEach(async(() => { authStub = fixture.debugElement.injector.get(AlfrescoAuthenticationService); fakeBpmService = fixture.debugElement.injector.get(BpmUserService); authStub.setIsBpmLoggedIn(true); fixture.detectChanges(); // runs ngOnInit -> getUsers fixture.whenStable() - .then( () => { - fixture.detectChanges(); - } ); + .then(() => { + fixture.detectChanges(); + }); })); it('should get the bpm current user image from the service', () => { @@ -144,18 +173,18 @@ describe('User info component', () => { fakeBpmService.respondWithTheUserWithoutImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let res = userInfoComp.getBpmUserAvatar(); - expect(userInfoComp.bpmUserImage).toBeUndefined(); - expect(res).toEqual(userInfoComp.anonymouseImageUrl); - }); + .then(() => { + fixture.detectChanges(); + let res = userInfoComp.getBpmUserAvatar(); + expect(userInfoComp.bpmUserImage).toBeUndefined(); + expect(res).toEqual(userInfoComp.anonymouseImageUrl); + }); })); }); describe('when user is logged on bpm and ecm', () => { - beforeEach( async(() => { + beforeEach(async(() => { authStub = fixture.debugElement.injector.get(AlfrescoAuthenticationService); fakeBpmService = fixture.debugElement.injector.get(BpmUserService); fakeEcmService = fixture.debugElement.injector.get(EcmUserService); @@ -164,9 +193,9 @@ describe('User info component', () => { authStub.setIsEcmLoggedIn(true); fixture.detectChanges(); // runs ngOnInit -> getUsers fixture.whenStable() - .then( () => { - fixture.detectChanges(); - } ); + .then(() => { + fixture.detectChanges(); + }); })); it('should get the bpm current user image from the service', () => { @@ -192,15 +221,15 @@ describe('User info component', () => { fakeEcmService.respondWithTheUserWithoutImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let resBpm = userInfoComp.getBpmUserAvatar(); - expect(userInfoComp.bpmUserImage).toBeUndefined(); - expect(resBpm).toEqual(userInfoComp.anonymouseImageUrl); - let resEcm = userInfoComp.getEcmUserAvatar(); - expect(userInfoComp.ecmUserImage).toBeUndefined(); - expect(resEcm).toEqual(userInfoComp.anonymouseImageUrl); - }); + .then(() => { + fixture.detectChanges(); + let resBpm = userInfoComp.getBpmUserAvatar(); + expect(userInfoComp.bpmUserImage).toBeUndefined(); + expect(resBpm).toEqual(userInfoComp.anonymouseImageUrl); + let resEcm = userInfoComp.getEcmUserAvatar(); + expect(userInfoComp.ecmUserImage).toBeUndefined(); + expect(resEcm).toEqual(userInfoComp.anonymouseImageUrl); + }); })); it('should return the ecm image if exists', async(() => { @@ -208,13 +237,13 @@ describe('User info component', () => { fakeEcmService.respondWithTheUserWithImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let res = userInfoComp.getUserAvatar(); - expect(userInfoComp.bpmUserImage).toBeDefined(); - expect(userInfoComp.ecmUserImage).toBeDefined(); - expect(res).toEqual(userInfoComp.ecmUserImage); - }); + .then(() => { + fixture.detectChanges(); + let res = userInfoComp.getUserAvatar(); + expect(userInfoComp.bpmUserImage).toBeDefined(); + expect(userInfoComp.ecmUserImage).toBeDefined(); + expect(res).toEqual(userInfoComp.ecmUserImage); + }); })); it('should return the bpm image if ecm does not have it', async(() => { @@ -222,13 +251,13 @@ describe('User info component', () => { fakeEcmService.respondWithTheUserWithoutImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let res = userInfoComp.getUserAvatar(); - expect(userInfoComp.bpmUserImage).toBeDefined(); - expect(userInfoComp.ecmUserImage).toBeUndefined(); - expect(res).toEqual(userInfoComp.bpmUserImage); - }); + .then(() => { + fixture.detectChanges(); + let res = userInfoComp.getUserAvatar(); + expect(userInfoComp.bpmUserImage).toBeDefined(); + expect(userInfoComp.ecmUserImage).toBeUndefined(); + expect(res).toEqual(userInfoComp.bpmUserImage); + }); })); it('should return the anonynous avatar if no user has it', async(() => { @@ -236,13 +265,13 @@ describe('User info component', () => { fakeEcmService.respondWithTheUserWithoutImage(); userInfoComp.ngOnInit(); fixture.whenStable() - .then( () => { - fixture.detectChanges(); - let res = userInfoComp.getUserAvatar(); - expect(userInfoComp.bpmUserImage).toBeUndefined(); - expect(userInfoComp.ecmUserImage).toBeUndefined(); - expect(res).toEqual(userInfoComp.anonymouseImageUrl); - }); + .then(() => { + fixture.detectChanges(); + let res = userInfoComp.getUserAvatar(); + expect(userInfoComp.bpmUserImage).toBeUndefined(); + expect(userInfoComp.ecmUserImage).toBeUndefined(); + expect(res).toEqual(userInfoComp.anonymouseImageUrl); + }); })); }); }); diff --git a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.ts b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.ts index 063dd42517..9b67109f3e 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/components/user-info.component.ts @@ -51,7 +51,7 @@ export class UserInfoComponent implements OnInit { .subscribe( (res) => { this.ecmUser = res; - this.getEcmAvatar(); + this._getEcmAvatar(); } ); } @@ -72,23 +72,23 @@ export class UserInfoComponent implements OnInit { } } - private getEcmAvatar() { + private _getEcmAvatar() { this.ecmUserImage = this.ecmUserService.getUserProfileImage(this.ecmUser.avatarId); } - public getUserAvatar() { + getUserAvatar() { return this.ecmUserImage || this.bpmUserImage || this.anonymouseImageUrl; } - public getBpmUserAvatar() { + getBpmUserAvatar() { return this.bpmUserImage || this.anonymouseImageUrl; } - public getEcmUserAvatar() { + getEcmUserAvatar() { return this.ecmUserImage || this.anonymouseImageUrl; } - public formatValue(value: string) { + formatValue(value: string) { return value === 'null' ? null : value; } diff --git a/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.spec.ts b/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.spec.ts index 352935c6e5..7bb8ba1b91 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.spec.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.spec.ts @@ -71,22 +71,39 @@ describe('Bpm User service', () => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', - responseText: { fakeBpmUser } + responseText: {fakeBpmUser} }); }); it('should retrieve avatar url for current user', (done) => { + spyOn(service, 'callGetProfilePictureApi').and.returnValue(Promise.resolve('fake/img/path')); service.getCurrentUserProfileImage().subscribe( (path) => { expect(path).toBeDefined(); expect(path).toEqual('fake/img/path'); done(); }); + }); + + it('should be able to log errors on call for profile', (done) => { + service.getCurrentUserInfo().subscribe(() => { + }, () => { + done(); + }); jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'json', - responseText: 'fake/img/path' + status: 403 + }); + }); + + it('should be able to log errors on call for profile picture', (done) => { + service.getCurrentUserProfileImage().subscribe(() => { + }, () => { + done(); + }); + + jasmine.Ajax.requests.mostRecent().respondWith({ + status: 403 }); }); }); diff --git a/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.ts b/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.ts index 3877268b4f..d666c17178 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/services/bpm-user.service.ts @@ -37,23 +37,23 @@ export class BpmUserService { * @param userName - the user name */ getCurrentUserInfo(): Observable { - if ( this.authService.isBpmLoggedIn() ) { + if (this.authService.isBpmLoggedIn()) { return Observable.fromPromise(this.authService.getAlfrescoApi().activiti.profileApi.getProfile()) .map( - (data) => data - ) + (data) => data + ) .catch(this.handleError); } } getCurrentUserProfileImage(): Observable { - if ( this.authService.isBpmLoggedIn() ) { - return Observable.fromPromise(this.callGetProfilePictureApi()) - .map( + if (this.authService.isBpmLoggedIn()) { + return Observable.fromPromise(this.callGetProfilePictureApi()) + .map( (data) => data - ) - .catch(this.handleError); - } + ) + .catch(this.handleError); + } } callGetProfilePictureApi() { diff --git a/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.spec.ts b/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.spec.ts index 2449193f70..2f048d93b4 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.spec.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.spec.ts @@ -89,7 +89,8 @@ describe('Ecm User service', () => { }); it('should be able to log errors on call', (done) => { - service.getCurrentUserInfo().subscribe(() => {}, () => { + service.getCurrentUserInfo().subscribe(() => { + }, () => { done(); }); diff --git a/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.ts b/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.ts index 7ff3643ef5..7edeefad40 100644 --- a/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.ts +++ b/ng2-components/ng2-alfresco-userinfo/src/services/ecm-user.service.ts @@ -30,7 +30,8 @@ import { EcmUserModel } from '../models/ecm-user.model'; export class EcmUserService { constructor(private authService: AlfrescoAuthenticationService, - private contentService: AlfrescoContentService) {} + private contentService: AlfrescoContentService) { + } /** * get User Information via ECM @@ -39,8 +40,8 @@ export class EcmUserService { getUserInfo(userName: string): Observable { return Observable.fromPromise(this.callApiGetPersonInfo(userName)) .map( - (data) => data['entry'] - ) + (data) => data['entry'] + ) .catch(this.handleError); } @@ -53,10 +54,10 @@ export class EcmUserService { } getUserProfileImage(avatarId: string) { - if ( avatarId ) { + if (avatarId) { let nodeObj = {entry: {id: avatarId}}; return this.contentService.getContentUrl(nodeObj); - } + } } /**