mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ACS-6190] prefer-promise-reject-errors rule and fixes (#9021)
* fix promise rejections * fix promise errors * promise error fixes * fix promise rejections * [ci:force] fix formatting * test fixes * [ci:force] fix tests * [ci:force] fix tests * fix incorrect return types * meaningful errors * remove useless pipe * fix accessing private members in the test
This commit is contained in:
@@ -26,17 +26,14 @@ import {
|
||||
AlfrescoApiService,
|
||||
AlfrescoApiServiceMock,
|
||||
AuthenticationService,
|
||||
CoreTestingModule,
|
||||
LogService
|
||||
CoreTestingModule
|
||||
} from '@alfresco/adf-core';
|
||||
import { PeopleContentQueryRequestModel, PeopleContentService } from './people-content.service';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
|
||||
describe('PeopleContentService', () => {
|
||||
|
||||
let peopleContentService: PeopleContentService;
|
||||
let logService: LogService;
|
||||
let authenticationService: AuthenticationService;
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -52,7 +49,6 @@ describe('PeopleContentService', () => {
|
||||
|
||||
authenticationService = TestBed.inject(AuthenticationService);
|
||||
peopleContentService = TestBed.inject(PeopleContentService);
|
||||
logService = TestBed.inject(LogService);
|
||||
});
|
||||
|
||||
it('should be able to fetch person details based on id', async () => {
|
||||
@@ -110,14 +106,11 @@ describe('PeopleContentService', () => {
|
||||
});
|
||||
|
||||
it('should be able to throw an error if createPerson api failed', (done) => {
|
||||
spyOn(peopleContentService.peopleApi, 'createPerson').and.returnValue(Promise.reject('failed to create new person'));
|
||||
const logErrorSpy = spyOn(logService, 'error');
|
||||
spyOn(peopleContentService.peopleApi, 'createPerson').and.returnValue(Promise.reject(new Error('failed to create new person')));
|
||||
peopleContentService.createPerson(createNewPersonMock).subscribe(
|
||||
() => {
|
||||
},
|
||||
(error) => {
|
||||
expect(logErrorSpy).toHaveBeenCalledWith('failed to create new person');
|
||||
expect(error).toEqual('failed to create new person');
|
||||
() => {},
|
||||
(error: Error) => {
|
||||
expect(error.message).toEqual('failed to create new person');
|
||||
done();
|
||||
}
|
||||
);
|
||||
|
@@ -16,9 +16,9 @@
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { from, Observable, of, throwError } from 'rxjs';
|
||||
import { AlfrescoApiService, AuthenticationService, LogService } from '@alfresco/adf-core';
|
||||
import { catchError, map, tap } from 'rxjs/operators';
|
||||
import { from, Observable, of } from 'rxjs';
|
||||
import { AlfrescoApiService, AuthenticationService } from '@alfresco/adf-core';
|
||||
import { map, tap } from 'rxjs/operators';
|
||||
import { Pagination, PeopleApi, PersonBodyCreate, PersonBodyUpdate } from '@alfresco/js-api';
|
||||
import { EcmUserModel } from '../models/ecm-user.model';
|
||||
import { ContentService } from './content.service';
|
||||
@@ -59,7 +59,6 @@ export class PeopleContentService {
|
||||
constructor(
|
||||
private apiService: AlfrescoApiService,
|
||||
authenticationService: AuthenticationService,
|
||||
private logService: LogService,
|
||||
private contentService: ContentService
|
||||
) {
|
||||
authenticationService.onLogout.subscribe(() => {
|
||||
@@ -76,8 +75,8 @@ export class PeopleContentService {
|
||||
getPerson(personId: string): Observable<EcmUserModel> {
|
||||
return from(this.peopleApi.getPerson(personId))
|
||||
.pipe(
|
||||
map((personEntry) => new EcmUserModel(personEntry.entry)),
|
||||
catchError((error) => this.handleError(error)));
|
||||
map((personEntry) => new EcmUserModel(personEntry.entry))
|
||||
);
|
||||
}
|
||||
|
||||
getCurrentPerson(): Observable<EcmUserModel> {
|
||||
@@ -130,8 +129,7 @@ export class PeopleContentService {
|
||||
map(response => ({
|
||||
pagination: response.list.pagination,
|
||||
entries: response.list.entries.map((person) => person.entry as EcmUserModel)
|
||||
})),
|
||||
catchError((err) => this.handleError(err))
|
||||
}))
|
||||
);
|
||||
}
|
||||
|
||||
@@ -144,8 +142,7 @@ export class PeopleContentService {
|
||||
*/
|
||||
createPerson(newPerson: PersonBodyCreate, opts?: any): Observable<EcmUserModel> {
|
||||
return from(this.peopleApi.createPerson(newPerson, opts)).pipe(
|
||||
map((res) => res?.entry as EcmUserModel),
|
||||
catchError((error) => this.handleError(error))
|
||||
map((res) => res?.entry as EcmUserModel)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -159,8 +156,7 @@ export class PeopleContentService {
|
||||
*/
|
||||
updatePerson(personId: string, details: PersonBodyUpdate, opts?: any): Observable<EcmUserModel> {
|
||||
return from(this.peopleApi.updatePerson(personId, details, opts)).pipe(
|
||||
map((res) => res?.entry as EcmUserModel),
|
||||
catchError((error) => this.handleError(error))
|
||||
map((res) => res?.entry as EcmUserModel)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -177,9 +173,4 @@ export class PeopleContentService {
|
||||
private buildOrderArray(sorting: PeopleContentSortingModel): string[] {
|
||||
return sorting?.orderBy && sorting?.direction ? [`${sorting.orderBy} ${sorting.direction.toUpperCase()}`] : [];
|
||||
}
|
||||
|
||||
private handleError(error: any) {
|
||||
this.logService.error(error);
|
||||
return throwError(error || 'Server error');
|
||||
}
|
||||
}
|
||||
|
@@ -201,7 +201,7 @@ export class RenditionService {
|
||||
clearInterval(intervalId);
|
||||
return resolve(this.handleNodeRendition(nodeId, rendition.entry.content.mimeType, versionId));
|
||||
}
|
||||
}, () => reject());
|
||||
}, () => reject(new Error('Error geting version rendition')));
|
||||
} else {
|
||||
this.renditionsApi.getRendition(nodeId, renditionId).then((rendition: RenditionEntry) => {
|
||||
const status: string = rendition.entry.status.toString();
|
||||
@@ -210,11 +210,11 @@ export class RenditionService {
|
||||
clearInterval(intervalId);
|
||||
return resolve(this.handleNodeRendition(nodeId, renditionId, versionId));
|
||||
}
|
||||
}, () => reject());
|
||||
}, () => reject(new Error('Error getting rendition')));
|
||||
}
|
||||
} else {
|
||||
clearInterval(intervalId);
|
||||
return reject();
|
||||
return reject(new Error('Error getting rendition'));
|
||||
}
|
||||
}, this.TRY_TIMEOUT);
|
||||
});
|
||||
@@ -287,6 +287,7 @@ export class RenditionService {
|
||||
* These are: images, PDF files, or PDF rendition of files.
|
||||
* We also force PDF rendition for TEXT type objects, otherwise the default URL is to download.
|
||||
* TODO there are different TEXT type objects, (HTML, plaintext, xml, etc. we should determine how these are handled)
|
||||
*
|
||||
* @param objectId object it
|
||||
* @param mimeType mime type
|
||||
*/
|
||||
|
@@ -20,22 +20,20 @@ import { AlfrescoApiService, LogService, TranslationService, ViewUtilService } f
|
||||
import { Rendition, RenditionEntry, RenditionPaging, RenditionsApi } from '@alfresco/js-api';
|
||||
import { RenditionService } from '@alfresco/adf-content-services';
|
||||
|
||||
const getRenditionEntry = (status: Rendition.StatusEnum): RenditionEntry => {
|
||||
return {
|
||||
entry: {
|
||||
id: 'pdf',
|
||||
status: status,
|
||||
content: { mimeType: 'application/pdf', mimeTypeName: 'application/pdf', sizeInBytes: 10 }
|
||||
}
|
||||
};
|
||||
};
|
||||
const getRenditionPaging = (status: Rendition.StatusEnum): RenditionPaging => {
|
||||
return {
|
||||
list: {
|
||||
entries: [getRenditionEntry(status)]
|
||||
}
|
||||
};
|
||||
};
|
||||
const getRenditionEntry = (status: Rendition.StatusEnum): RenditionEntry => ({
|
||||
entry: {
|
||||
id: 'pdf',
|
||||
status,
|
||||
content: { mimeType: 'application/pdf', mimeTypeName: 'application/pdf', sizeInBytes: 10 }
|
||||
}
|
||||
});
|
||||
|
||||
const getRenditionPaging = (status: Rendition.StatusEnum): RenditionPaging => ({
|
||||
list: {
|
||||
entries: [getRenditionEntry(status)]
|
||||
}
|
||||
});
|
||||
|
||||
describe('RenditionService', () => {
|
||||
let renditionService: RenditionService;
|
||||
let renditionsApi: any;
|
||||
|
@@ -92,7 +92,7 @@ describe('NodeLockDialogComponent', () => {
|
||||
}));
|
||||
|
||||
it('should call onError if submit fails', fakeAsync(() => {
|
||||
spyOn(component.nodesApi, 'lockNode').and.returnValue(Promise.reject('error'));
|
||||
spyOn(component.nodesApi, 'lockNode').and.returnValue(Promise.reject(new Error('error')));
|
||||
spyOn(component.data, 'onError');
|
||||
|
||||
component.submit();
|
||||
|
@@ -53,39 +53,39 @@ describe('LibraryFavoriteDirective', () => {
|
||||
});
|
||||
|
||||
it('should not check for favorite if no selection exists', () => {
|
||||
spyOn(component.directive['favoritesApi'], 'getFavoriteSite');
|
||||
spyOn(component.directive.favoritesApi, 'getFavoriteSite');
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(component.directive['favoritesApi'].getFavoriteSite).not.toHaveBeenCalled();
|
||||
expect(component.directive.favoritesApi.getFavoriteSite).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should mark selection as favorite', async () => {
|
||||
spyOn(component.directive['favoritesApi'], 'getFavoriteSite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(component.directive.favoritesApi, 'getFavoriteSite').and.returnValue(Promise.resolve(null));
|
||||
|
||||
delete selection.isFavorite;
|
||||
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(component.directive['favoritesApi'].getFavoriteSite).toHaveBeenCalled();
|
||||
expect(component.directive.favoritesApi.getFavoriteSite).toHaveBeenCalled();
|
||||
expect(component.directive.isFavorite()).toBe(true);
|
||||
});
|
||||
|
||||
it('should mark selection not favorite', async () => {
|
||||
spyOn(component.directive['favoritesApi'], 'getFavoriteSite').and.returnValue(Promise.reject());
|
||||
spyOn(component.directive.favoritesApi, 'getFavoriteSite').and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
delete selection.isFavorite;
|
||||
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(component.directive['favoritesApi'].getFavoriteSite).toHaveBeenCalled();
|
||||
expect(component.directive.favoritesApi.getFavoriteSite).toHaveBeenCalled();
|
||||
expect(component.directive.isFavorite()).toBe(false);
|
||||
});
|
||||
|
||||
it('should call addFavorite() on click event when selection is not a favorite', async () => {
|
||||
spyOn(component.directive['favoritesApi'], 'getFavoriteSite').and.returnValue(Promise.reject());
|
||||
spyOn(component.directive['favoritesApi'], 'createFavorite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(component.directive.favoritesApi, 'getFavoriteSite').and.returnValue(Promise.reject(new Error('error')));
|
||||
spyOn(component.directive.favoritesApi, 'createFavorite').and.returnValue(Promise.resolve(null));
|
||||
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
@@ -94,12 +94,12 @@ describe('LibraryFavoriteDirective', () => {
|
||||
|
||||
fixture.nativeElement.querySelector('button').dispatchEvent(new MouseEvent('click'));
|
||||
fixture.detectChanges();
|
||||
expect(component.directive['favoritesApi'].createFavorite).toHaveBeenCalled();
|
||||
expect(component.directive.favoritesApi.createFavorite).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should call removeFavoriteSite() on click event when selection is favorite', async () => {
|
||||
spyOn(component.directive['favoritesApi'], 'getFavoriteSite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(component.directive['favoritesApi'], 'deleteFavorite').and.returnValue(Promise.resolve());
|
||||
spyOn(component.directive.favoritesApi, 'getFavoriteSite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(component.directive.favoritesApi, 'deleteFavorite').and.returnValue(Promise.resolve());
|
||||
|
||||
selection.isFavorite = true;
|
||||
|
||||
@@ -113,6 +113,6 @@ describe('LibraryFavoriteDirective', () => {
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(component.directive['favoritesApi'].deleteFavorite).toHaveBeenCalled();
|
||||
expect(component.directive.favoritesApi.deleteFavorite).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
@@ -70,7 +70,7 @@ describe('LibraryMembershipDirective', () => {
|
||||
|
||||
describe('markMembershipRequest', () => {
|
||||
beforeEach(() => {
|
||||
getMembershipSpy = spyOn(directive['sitesApi'], 'getSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
getMembershipSpy = spyOn(directive.sitesApi, 'getSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
});
|
||||
|
||||
it('should not check membership requests if no entry is selected', fakeAsync(() => {
|
||||
@@ -98,7 +98,7 @@ describe('LibraryMembershipDirective', () => {
|
||||
}));
|
||||
|
||||
it('should remember when a membership request is not found for selected library', fakeAsync(() => {
|
||||
getMembershipSpy.and.returnValue(Promise.reject());
|
||||
getMembershipSpy.and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const selection = { entry: testSiteEntry };
|
||||
const change = new SimpleChange(null, selection, true);
|
||||
@@ -111,9 +111,9 @@ describe('LibraryMembershipDirective', () => {
|
||||
describe('toggleMembershipRequest', () => {
|
||||
beforeEach(() => {
|
||||
mockSupportedVersion = false;
|
||||
getMembershipSpy = spyOn(directive['sitesApi'], 'getSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
addMembershipSpy = spyOn(directive['sitesApi'], 'createSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
deleteMembershipSpy = spyOn(directive['sitesApi'], 'deleteSiteMembershipRequestForPerson').and.returnValue(Promise.resolve());
|
||||
getMembershipSpy = spyOn(directive.sitesApi, 'getSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
addMembershipSpy = spyOn(directive.sitesApi, 'createSiteMembershipRequestForPerson').and.returnValue(Promise.resolve({ entry: requestedMembershipResponse }));
|
||||
deleteMembershipSpy = spyOn(directive.sitesApi, 'deleteSiteMembershipRequestForPerson').and.returnValue(Promise.resolve());
|
||||
});
|
||||
|
||||
it('should do nothing if there is no selected library ', fakeAsync(() => {
|
||||
|
@@ -111,10 +111,10 @@ describe('NodeDeleteDirective', () => {
|
||||
element = fixture.debugElement.query(By.directive(NodeDeleteDirective));
|
||||
elementWithPermanentDelete = fixtureWithPermanentComponent.debugElement.query(By.directive(NodeDeleteDirective));
|
||||
|
||||
deleteNodeSpy = spyOn(component.deleteDirective['nodesApi'], 'deleteNode').and.returnValue(Promise.resolve());
|
||||
deleteNodeSpy = spyOn(component.deleteDirective.nodesApi, 'deleteNode').and.returnValue(Promise.resolve());
|
||||
|
||||
deleteNodePermanentSpy = spyOn(componentWithPermanentDelete.deleteDirective['nodesApi'], 'deleteNode').and.returnValue(Promise.resolve());
|
||||
purgeDeletedNodePermanentSpy = spyOn(componentWithPermanentDelete.deleteDirective['trashcanApi'], 'deleteDeletedNode').and.returnValue(Promise.resolve());
|
||||
deleteNodePermanentSpy = spyOn(componentWithPermanentDelete.deleteDirective.nodesApi, 'deleteNode').and.returnValue(Promise.resolve());
|
||||
purgeDeletedNodePermanentSpy = spyOn(componentWithPermanentDelete.deleteDirective.trashcanApi, 'deleteDeletedNode').and.returnValue(Promise.resolve());
|
||||
|
||||
});
|
||||
|
||||
@@ -152,7 +152,7 @@ describe('NodeDeleteDirective', () => {
|
||||
});
|
||||
|
||||
it('should notify failed node deletion', async () => {
|
||||
deleteNodeSpy.and.returnValue(Promise.reject('error'));
|
||||
deleteNodeSpy.and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
component.selection = [{ entry: { id: '1', name: 'name1' } }];
|
||||
fixture.detectChanges();
|
||||
@@ -187,7 +187,7 @@ describe('NodeDeleteDirective', () => {
|
||||
});
|
||||
|
||||
it('should notify failed nodes deletion', async () => {
|
||||
deleteNodeSpy.and.returnValue(Promise.reject('error'));
|
||||
deleteNodeSpy.and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
component.selection = [
|
||||
{ entry: { id: '1', name: 'name1' } },
|
||||
@@ -209,7 +209,7 @@ describe('NodeDeleteDirective', () => {
|
||||
it('should notify partial deletion when only one node is successful', async () => {
|
||||
deleteNodeSpy.and.callFake((id) => {
|
||||
if (id === '1') {
|
||||
return Promise.reject('error');
|
||||
return Promise.reject(new Error('error'));
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
@@ -235,7 +235,7 @@ describe('NodeDeleteDirective', () => {
|
||||
it('should notify partial deletion when some nodes are successful', async () => {
|
||||
deleteNodeSpy.and.callFake((id) => {
|
||||
if (id === '1') {
|
||||
return Promise.reject(null);
|
||||
return Promise.reject(new Error('error'));
|
||||
}
|
||||
|
||||
return Promise.resolve();
|
||||
|
@@ -69,7 +69,7 @@ describe('NodeFavoriteDirective', () => {
|
||||
});
|
||||
|
||||
it('should reset favorites if selection is empty', fakeAsync(() => {
|
||||
spyOn(directive['favoritesApi'], 'getFavorite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(directive.favoritesApi, 'getFavorite').and.returnValue(Promise.resolve(null));
|
||||
|
||||
const selection = [
|
||||
{ entry: { id: '1', name: 'name1' } }
|
||||
@@ -90,11 +90,10 @@ describe('NodeFavoriteDirective', () => {
|
||||
});
|
||||
|
||||
describe('markFavoritesNodes()', () => {
|
||||
let favoritesApiSpy;
|
||||
let favoritesApiSpy: jasmine.Spy;
|
||||
|
||||
beforeEach(() => {
|
||||
favoritesApiSpy = spyOn(directive['favoritesApi'], 'getFavorite')
|
||||
.and.returnValue(Promise.resolve(null));
|
||||
favoritesApiSpy = spyOn(directive.favoritesApi, 'getFavorite').and.returnValue(Promise.resolve(null));
|
||||
});
|
||||
|
||||
it('should check each selected node if it is a favorite', fakeAsync(() => {
|
||||
@@ -108,7 +107,6 @@ describe('NodeFavoriteDirective', () => {
|
||||
|
||||
tick();
|
||||
expect(favoritesApiSpy.calls.count()).toBe(2);
|
||||
|
||||
}));
|
||||
|
||||
it('should not check processed node when another is unselected', fakeAsync(() => {
|
||||
@@ -170,12 +168,12 @@ describe('NodeFavoriteDirective', () => {
|
||||
});
|
||||
|
||||
describe('toggleFavorite()', () => {
|
||||
let removeFavoriteSpy;
|
||||
let addFavoriteSpy;
|
||||
let removeFavoriteSpy: jasmine.Spy;
|
||||
let addFavoriteSpy: jasmine.Spy;
|
||||
|
||||
beforeEach(() => {
|
||||
removeFavoriteSpy = spyOn(directive['favoritesApi'], 'deleteFavorite').and.callThrough();
|
||||
addFavoriteSpy = spyOn(directive['favoritesApi'], 'createFavorite').and.callThrough();
|
||||
removeFavoriteSpy = spyOn(directive.favoritesApi, 'deleteFavorite').and.callThrough();
|
||||
addFavoriteSpy = spyOn(directive.favoritesApi, 'createFavorite').and.callThrough();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -266,7 +264,8 @@ describe('NodeFavoriteDirective', () => {
|
||||
}));
|
||||
|
||||
it('should emit error event when removeFavoriteSite() fails', fakeAsync(() => {
|
||||
removeFavoriteSpy.and.returnValue(Promise.reject('error'));
|
||||
const error = new Error('error');
|
||||
removeFavoriteSpy.and.returnValue(Promise.reject(error));
|
||||
spyOn(directive.error, 'emit');
|
||||
|
||||
directive.favorites = [
|
||||
@@ -276,11 +275,12 @@ describe('NodeFavoriteDirective', () => {
|
||||
directive.toggleFavorite();
|
||||
tick();
|
||||
|
||||
expect(directive.error.emit).toHaveBeenCalledWith('error');
|
||||
expect(directive.error.emit).toHaveBeenCalledWith(error);
|
||||
}));
|
||||
|
||||
it('should emit error event when addFavorite() fails', fakeAsync(() => {
|
||||
addFavoriteSpy.and.returnValue(Promise.reject('error'));
|
||||
const error = new Error('error');
|
||||
addFavoriteSpy.and.returnValue(Promise.reject(error));
|
||||
spyOn(directive.error, 'emit');
|
||||
|
||||
directive.favorites = [
|
||||
@@ -290,7 +290,7 @@ describe('NodeFavoriteDirective', () => {
|
||||
directive.toggleFavorite();
|
||||
tick();
|
||||
|
||||
expect(directive.error.emit).toHaveBeenCalledWith('error');
|
||||
expect(directive.error.emit).toHaveBeenCalledWith(error);
|
||||
}));
|
||||
|
||||
it('should set isFavorites items to false', fakeAsync(() => {
|
||||
@@ -323,7 +323,7 @@ describe('NodeFavoriteDirective', () => {
|
||||
describe('getFavorite()', () => {
|
||||
|
||||
it('should not hit server when using 6.x api', fakeAsync(() => {
|
||||
spyOn(directive['favoritesApi'], 'getFavorite').and.callThrough();
|
||||
spyOn(directive.favoritesApi, 'getFavorite').and.callThrough();
|
||||
|
||||
const selection = [
|
||||
{ entry: { id: '1', name: 'name1', isFavorite: true } }
|
||||
@@ -334,11 +334,11 @@ describe('NodeFavoriteDirective', () => {
|
||||
tick();
|
||||
|
||||
expect(directive.favorites[0].entry.isFavorite).toBe(true);
|
||||
expect(directive['favoritesApi'].getFavorite).not.toHaveBeenCalled();
|
||||
expect(directive.favoritesApi.getFavorite).not.toHaveBeenCalled();
|
||||
}));
|
||||
|
||||
it('should process node as favorite', fakeAsync(() => {
|
||||
spyOn(directive['favoritesApi'], 'getFavorite').and.returnValue(Promise.resolve(null));
|
||||
spyOn(directive.favoritesApi, 'getFavorite').and.returnValue(Promise.resolve(null));
|
||||
|
||||
const selection = [
|
||||
{ entry: { id: '1', name: 'name1' } }
|
||||
@@ -352,7 +352,7 @@ describe('NodeFavoriteDirective', () => {
|
||||
}));
|
||||
|
||||
it('should not process node as favorite', fakeAsync(() => {
|
||||
spyOn(directive['favoritesApi'], 'getFavorite').and.returnValue(Promise.reject({}));
|
||||
spyOn(directive.favoritesApi, 'getFavorite').and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const selection = [
|
||||
{ entry: { id: '1', name: 'name1' } }
|
||||
|
@@ -1273,10 +1273,10 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
it('should emit error when fetch trashcan fails', (done) => {
|
||||
spyOn(customResourcesService.trashcanApi, 'listDeletedNodes').and.returnValue(Promise.reject('error'));
|
||||
spyOn(customResourcesService.trashcanApi, 'listDeletedNodes').and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const disposableError = documentList.error.subscribe((val) => {
|
||||
expect(val).toBe('error');
|
||||
const disposableError = documentList.error.subscribe((err) => {
|
||||
expect(err.message).toBe('error');
|
||||
disposableError.unsubscribe();
|
||||
done();
|
||||
});
|
||||
@@ -1295,10 +1295,10 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
it('should emit error when fetch shared links fails', (done) => {
|
||||
spyOn(customResourcesService.sharedLinksApi, 'listSharedLinks').and.returnValue(Promise.reject('error'));
|
||||
spyOn(customResourcesService.sharedLinksApi, 'listSharedLinks').and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const disposableError = documentList.error.subscribe((val) => {
|
||||
expect(val).toBe('error');
|
||||
const disposableError = documentList.error.subscribe((err) => {
|
||||
expect(err.message).toBe('error');
|
||||
disposableError.unsubscribe();
|
||||
done();
|
||||
});
|
||||
@@ -1316,10 +1316,10 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
it('should emit error when fetch sites fails', (done) => {
|
||||
spyGetSites.and.returnValue(Promise.reject('error'));
|
||||
spyGetSites.and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const disposableError = documentList.error.subscribe((val) => {
|
||||
expect(val).toBe('error');
|
||||
const disposableError = documentList.error.subscribe((err) => {
|
||||
expect(err.message).toBe('error');
|
||||
disposableError.unsubscribe();
|
||||
done();
|
||||
});
|
||||
@@ -1338,10 +1338,10 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
it('should emit error when fetch membership sites fails', (done) => {
|
||||
spyOn(customResourcesService.sitesApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.reject('error'));
|
||||
spyOn(customResourcesService.sitesApi, 'listSiteMembershipsForPerson').and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const disposableError = documentList.error.subscribe((val) => {
|
||||
expect(val).toBe('error');
|
||||
const disposableError = documentList.error.subscribe((err) => {
|
||||
expect(err.message).toBe('error');
|
||||
disposableError.unsubscribe();
|
||||
done();
|
||||
});
|
||||
@@ -1359,10 +1359,10 @@ describe('DocumentList', () => {
|
||||
});
|
||||
|
||||
it('should emit error when fetch favorites fails', (done) => {
|
||||
spyFavorite.and.returnValue(Promise.reject('error'));
|
||||
spyFavorite.and.returnValue(Promise.reject(new Error('error')));
|
||||
|
||||
const disposableError = documentList.error.subscribe((val) => {
|
||||
expect(val).toBe('error');
|
||||
const disposableError = documentList.error.subscribe((err) => {
|
||||
expect(err.message).toBe('error');
|
||||
disposableError.unsubscribe();
|
||||
done();
|
||||
});
|
||||
|
@@ -97,7 +97,7 @@ export class WebscriptComponent implements OnChanges {
|
||||
resolve();
|
||||
}, (error) => {
|
||||
this.logService.log('Error' + error);
|
||||
reject();
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user