[ADF-3062] dual api support for Favorites (#3447)

* dual api support for Favorites

* unit test
This commit is contained in:
Denys Vuika 2018-06-06 23:06:42 +01:00 committed by Eugenio Romano
parent 9bb941887a
commit 1838818295
2 changed files with 28 additions and 3 deletions

View File

@ -21,11 +21,12 @@ import { NodeFavoriteDirective } from './node-favorite.directive';
import { AlfrescoApiServiceMock } from '../mock/alfresco-api.service.mock';
import { AppConfigService } from '../app-config/app-config.service';
import { StorageService } from '../services/storage.service';
import { AlfrescoApiService } from '../services/alfresco-api.service';
describe('NodeFavoriteDirective', () => {
let directive;
let alfrescoApiService;
let alfrescoApiService: AlfrescoApiService;
beforeEach(() => {
alfrescoApiService = new AlfrescoApiServiceMock(new AppConfigService(null), new StorageService());
@ -316,6 +317,22 @@ describe('NodeFavoriteDirective', () => {
});
describe('getFavorite()', () => {
it('should not hit server when using 6.x api', fakeAsync(() => {
spyOn(alfrescoApiService.favoritesApi, 'getFavorite').and.callThrough();
const selection = [
{ entry: { id: '1', name: 'name1', isFavorite: true } }
];
let change = new SimpleChange(null, selection, true);
directive.ngOnChanges({'selection': change});
tick();
expect(directive.favorites[0].entry.isFavorite).toBe(true);
expect(alfrescoApiService.favoritesApi.getFavorite).not.toHaveBeenCalled();
}));
it('should process node as favorite', fakeAsync(() => {
spyOn(alfrescoApiService.getInstance().core.favoritesApi, 'getFavorite').and.returnValue(Promise.resolve());

View File

@ -125,9 +125,17 @@ export class NodeFavoriteDirective implements OnChanges {
}
private getFavorite(selected: MinimalNodeEntity): Observable<any> {
const { name, isFile, isFolder } = selected.entry;
const node = selected.entry;
// ACS 6.x with 'isFavorite' include
if (node && node.hasOwnProperty('isFavorite')) {
return Observable.of(selected);
}
// ACS 5.x and 6.x without 'isFavorite' include
const { name, isFile, isFolder } = node;
// shared files have nodeId
const id = (<any> selected).entry.nodeId || selected.entry.id;
const id = node.nodeId || node.id;
const promise = this.alfrescoApiService.favoritesApi.getFavorite('-me-', id);