From 9e6469c566203166f8d26c956fd91cd29bab8e01 Mon Sep 17 00:00:00 2001 From: suzanadirla Date: Tue, 6 Feb 2018 15:53:44 +0200 Subject: [PATCH] [ADF-2176] [Destination picker] File Libraries are not displayed (#2868) * [ADF-2176] [Destination picker] File Libraries are not displayed update columns used for display according to the folder node to display * [ADF-2176] revert initial changes * [ADF-2176] assure that site entries have 'name' property set * [ADF-2176] add unit test --- .../document-list.component.spec.ts | 60 ++++++++++++++- .../components/document-list.component.ts | 11 ++- .../mock/document-list.component.mock.ts | 76 +++++++++++++++++++ 3 files changed, 145 insertions(+), 2 deletions(-) diff --git a/lib/content-services/document-list/components/document-list.component.spec.ts b/lib/content-services/document-list/components/document-list.component.spec.ts index 1cb7220c80..d8bc919a73 100644 --- a/lib/content-services/document-list/components/document-list.component.spec.ts +++ b/lib/content-services/document-list/components/document-list.component.spec.ts @@ -27,7 +27,9 @@ import { fakeNodeAnswerWithEntries, fakeNodeAnswerWithNOEntries, fakeNodeWithCreatePermission, - fakeNodeWithNoPermission + fakeNodeWithNoPermission, + fakeGetSitesAnswer, + fakeGetSiteMembership } from '../../mock'; import { MaterialModule } from '../../material.module'; import { ContentActionModel } from '../models/content-action.model'; @@ -1017,6 +1019,34 @@ describe('DocumentList', () => { documentList.loadFolderByNodeId('-sites-'); }); + it('should assure that sites have name property set', (done) => { + const sitesApi = apiService.getInstance().core.sitesApi; + spyOn(sitesApi, 'getSites').and.returnValue(Promise.resolve(fakeGetSitesAnswer)); + + documentList.loadFolderByNodeId('-sites-'); + expect(sitesApi.getSites).toHaveBeenCalled(); + + documentList.ready.subscribe((page) => { + const entriesWithoutName = page.list.entries.filter(item => !item.entry.name); + expect(entriesWithoutName.length).toBe(0); + done(); + }); + }); + + it('should assure that sites have name property set correctly', (done) => { + const sitesApi = apiService.getInstance().core.sitesApi; + spyOn(sitesApi, 'getSites').and.returnValue(Promise.resolve(fakeGetSitesAnswer)); + + documentList.loadFolderByNodeId('-sites-'); + expect(sitesApi.getSites).toHaveBeenCalled(); + + documentList.ready.subscribe((page) => { + const wrongName = page.list.entries.filter(item => (item.entry.name !== item.entry.title)); + expect(wrongName.length).toBe(0); + done(); + }); + }); + it('should fetch user membership sites', () => { const peopleApi = apiService.getInstance().core.peopleApi; spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve()); @@ -1037,6 +1067,34 @@ describe('DocumentList', () => { documentList.loadFolderByNodeId('-mysites-'); }); + it('should assure that user membership sites have name property set', (done) => { + const peopleApi = apiService.getInstance().core.peopleApi; + spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership)); + + documentList.loadFolderByNodeId('-mysites-'); + expect(peopleApi.getSiteMembership).toHaveBeenCalled(); + + documentList.ready.subscribe((page) => { + const entriesWithoutName = page.list.entries.filter(item => !item.entry.name); + expect(entriesWithoutName.length).toBe(0); + done(); + }); + }); + + it('should assure that user membership sites have name property set correctly', (done) => { + const peopleApi = apiService.getInstance().core.peopleApi; + spyOn(peopleApi, 'getSiteMembership').and.returnValue(Promise.resolve(fakeGetSiteMembership)); + + documentList.loadFolderByNodeId('-mysites-'); + expect(peopleApi.getSiteMembership).toHaveBeenCalled(); + + documentList.ready.subscribe((page) => { + const wrongName = page.list.entries.filter(item => (item.entry.name !== item.entry.title)); + expect(wrongName.length).toBe(0); + done(); + }); + }); + it('should fetch favorites', () => { const favoritesApi = apiService.getInstance().core.favoritesApi; spyOn(favoritesApi, 'getFavorites').and.returnValue(Promise.resolve(null)); diff --git a/lib/content-services/document-list/components/document-list.component.ts b/lib/content-services/document-list/components/document-list.component.ts index 541a9f0e50..9c9d00bffe 100644 --- a/lib/content-services/document-list/components/document-list.component.ts +++ b/lib/content-services/document-list/components/document-list.component.ts @@ -608,7 +608,15 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte }; this.apiService.sitesApi.getSites(options) - .then((page: NodePaging) => this.onPageLoaded(page, merge)) + .then((page: NodePaging) => { + page.list.entries.map( + ({entry}: any) => { + entry.name = entry.name || entry.title; + return {entry}; + } + ); + this.onPageLoaded(page, merge); + }) .catch(error => this.error.emit(error)); } @@ -626,6 +634,7 @@ export class DocumentListComponent implements OnInit, OnChanges, OnDestroy, Afte entries: result.list.entries .map(({entry: {site}}: any) => { site.allowableOperations = site.allowableOperations ? site.allowableOperations : [this.CREATE_PERMISSION]; + site.name = site.name || site.title; return { entry: site }; diff --git a/lib/content-services/mock/document-list.component.mock.ts b/lib/content-services/mock/document-list.component.mock.ts index 4b00a0df14..d2f499d62a 100644 --- a/lib/content-services/mock/document-list.component.mock.ts +++ b/lib/content-services/mock/document-list.component.mock.ts @@ -115,3 +115,79 @@ export const fakeNodeAnswerWithNOEntries = { 'entries': [] } }; + +export const fakeGetSitesAnswer = { + 'list': { + 'pagination': { + 'count': 3, + 'hasMoreItems': false, + 'totalItems': 3, + 'skipCount': 0, + 'maxItems': 20 + }, + 'entries': [{ + 'entry': { + 'role': 'SiteManager', + 'visibility': 'PRIVATE', + 'guid': 'ac65fdbe-0c79-4f67-bd6a-b89a2768561b', + 'id': 'admin-site', + 'preset': 'site-dashboard', + 'title': 'Admin Site' + } + }, { + 'entry': { + 'role': 'SiteManager', + 'visibility': 'PUBLIC', + 'guid': 'b4cff62a-664d-4d45-9302-98723eac1319', + 'description': 'This is a Sample Alfresco Team site.', + 'id': 'swsdp', + 'preset': 'site-dashboard', + 'title': 'Sample: Web Site Design Project' + } + }, { + 'entry': { + 'visibility': 'PUBLIC', + 'guid': 'af36cf8f-d43c-4a4b-84e6-d1b03e3a2ce5', + 'id': 'test-site', + 'preset': 'site-dashboard', + 'title': 'Test Site' + } + }] + } +}; + +export const fakeGetSiteMembership = { + 'list': { + 'pagination': { + 'count': 2, + 'hasMoreItems': false, + 'totalItems': 2, + 'skipCount': 0, + 'maxItems': 20 + }, + 'entries': [{ + 'entry': { + 'site': { + 'role': 'SiteManager', + 'visibility': 'PRIVATE', + 'guid': 'ac65fdbe-0c79-4f67-bd6a-b89a2768561b', + 'id': 'admin-site', + 'preset': 'site-dashboard', + 'title': 'Admin Site' + }, 'role': 'SiteManager', 'guid': 'ac65fdbe-0c79-4f67-bd6a-b89a2768561b', 'id': 'admin-site' + } + }, { + 'entry': { + 'site': { + 'role': 'SiteManager', + 'visibility': 'PUBLIC', + 'guid': 'b4cff62a-664d-4d45-9302-98723eac1319', + 'description': 'This is a Sample Alfresco Team site.', + 'id': 'swsdp', + 'preset': 'site-dashboard', + 'title': 'Sample: Web Site Design Project' + }, 'role': 'SiteManager', 'guid': 'b4cff62a-664d-4d45-9302-98723eac1319', 'id': 'swsdp' + } + }] + } +};