mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-09-10 14:11:42 +00:00
AAE-37368 Added tasks API and unit tests
This commit is contained in:
@@ -52,7 +52,7 @@ describe('ProcessFiltersCloudComponent', () => {
|
||||
provide: ProcessListCloudService,
|
||||
useValue: {
|
||||
getProcessCounter: () => of(10),
|
||||
getProcessListCounter: () => of(10)
|
||||
getProcessListCount: () => of(10)
|
||||
}
|
||||
},
|
||||
{ provide: ProcessFilterCloudService, useValue: ProcessFilterCloudServiceMock },
|
||||
|
@@ -267,4 +267,40 @@ describe('ProcessListCloudService', () => {
|
||||
expect(requestBodyParams.variableKeys[1]).toBe('test-two');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getProcessListCount', () => {
|
||||
it('should concat the app name to the request url', async () => {
|
||||
const taskRequest = {
|
||||
appName: 'fakeName'
|
||||
} as ProcessListRequestModel;
|
||||
requestSpy.and.callFake(returnCallUrl);
|
||||
|
||||
const res = await firstValueFrom(service.getProcessListCount(taskRequest));
|
||||
|
||||
expect(res).toBeDefined();
|
||||
expect(res).not.toBeNull();
|
||||
expect(res).toContain('fakeName/query/v1/process-instances/count');
|
||||
});
|
||||
|
||||
it('should return 0 if response is falsy for getProcessListCount', async () => {
|
||||
const taskRequest = {
|
||||
appName: 'fakeName',
|
||||
pagination: { skipCount: 0, maxItems: 20 }
|
||||
} as ProcessListRequestModel;
|
||||
requestSpy.and.callFake(() => Promise.resolve(null));
|
||||
|
||||
const res = await firstValueFrom(service.getProcessListCount(taskRequest));
|
||||
|
||||
expect(res).toBe(0);
|
||||
});
|
||||
|
||||
it('should throw error if appName is not configured in getProcessListCount', async () => {
|
||||
const taskRequest = { appName: null } as ProcessListRequestModel;
|
||||
requestSpy.and.callFake(returnCallUrl);
|
||||
|
||||
const res = await firstValueFrom(service.getProcessListCount(taskRequest).pipe(catchError((error) => of(error.message))));
|
||||
|
||||
expect(res).toBe('Appname not configured');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -42,7 +42,7 @@ describe('TaskFiltersCloudComponent', () => {
|
||||
let fixture: ComponentFixture<TaskFiltersCloudComponent>;
|
||||
let getTaskFilterCounterSpy: jasmine.Spy;
|
||||
let getTaskListFiltersSpy: jasmine.Spy;
|
||||
let getTaskListCounterSpy: jasmine.Spy;
|
||||
let getTaskListCountSpy: jasmine.Spy;
|
||||
|
||||
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
|
||||
TestBed.configureTestingModule({
|
||||
@@ -52,7 +52,7 @@ describe('TaskFiltersCloudComponent', () => {
|
||||
taskFilterService = TestBed.inject(TaskFilterCloudService);
|
||||
taskListService = TestBed.inject(TaskListCloudService);
|
||||
getTaskFilterCounterSpy = spyOn(taskFilterService, 'getTaskFilterCounter').and.returnValue(of(11));
|
||||
getTaskListCounterSpy = spyOn(taskListService, 'getTaskListCounter').and.returnValue(of(11));
|
||||
getTaskListCountSpy = spyOn(taskListService, 'getTaskListCount').and.returnValue(of(11));
|
||||
spyOn(taskFilterService, 'getTaskNotificationSubscription').and.returnValue(of(taskNotifications));
|
||||
getTaskListFiltersSpy = spyOn(taskFilterService, 'getTaskListFilters').and.returnValue(of(fakeGlobalFilter));
|
||||
|
||||
@@ -355,7 +355,7 @@ describe('TaskFiltersCloudComponent', () => {
|
||||
);
|
||||
await filterButton.click();
|
||||
|
||||
expect(getTaskListCounterSpy).toHaveBeenCalledWith(new TaskFilterCloudAdapter(fakeGlobalFilter[0]));
|
||||
expect(getTaskListCountSpy).toHaveBeenCalledWith(new TaskFilterCloudAdapter(fakeGlobalFilter[0]));
|
||||
});
|
||||
});
|
||||
|
||||
|
@@ -151,7 +151,7 @@ export class TaskFiltersCloudComponent extends BaseTaskFiltersCloudComponent imp
|
||||
|
||||
private fetchTaskFilterCounter(filter: TaskFilterCloudModel): Observable<number> {
|
||||
return this.searchApiMethod === 'POST'
|
||||
? this.taskListCloudService.getTaskListCounter(new TaskFilterCloudAdapter(filter))
|
||||
? this.taskListCloudService.getTaskListCount(new TaskFilterCloudAdapter(filter))
|
||||
: this.taskFilterCloudService.getTaskFilterCounter(filter);
|
||||
}
|
||||
|
||||
|
@@ -155,6 +155,41 @@ describe('TaskListCloudService', () => {
|
||||
|
||||
const res = await firstValueFrom(service.fetchTaskList(taskRequest).pipe(catchError((error) => of(error.message))));
|
||||
|
||||
expect(res).toBe('Appname not configured');
|
||||
});
|
||||
});
|
||||
describe('getTaskListCount', () => {
|
||||
it('should concat the app name to the request url', async () => {
|
||||
const taskRequest = {
|
||||
appName: 'fakeName'
|
||||
} as TaskListRequestModel;
|
||||
requestSpy.and.callFake(returnCallUrl);
|
||||
|
||||
const res = await firstValueFrom(service.getTaskListCount(taskRequest));
|
||||
|
||||
expect(res).toBeDefined();
|
||||
expect(res).not.toBeNull();
|
||||
expect(res).toContain('fakeName/query/v1/tasks/count');
|
||||
});
|
||||
|
||||
it('should return 0 if response is falsy for getTaskListCount', async () => {
|
||||
const taskRequest = {
|
||||
appName: 'fakeName',
|
||||
pagination: { skipCount: 0, maxItems: 20 }
|
||||
} as TaskListRequestModel;
|
||||
requestSpy.and.callFake(() => Promise.resolve(null));
|
||||
|
||||
const res = await firstValueFrom(service.getTaskListCount(taskRequest));
|
||||
|
||||
expect(res).toBe(0);
|
||||
});
|
||||
|
||||
it('should throw error if appName is not configured in getTaskListCount', async () => {
|
||||
const taskRequest = { appName: null } as TaskListRequestModel;
|
||||
requestSpy.and.callFake(returnCallUrl);
|
||||
|
||||
const res = await firstValueFrom(service.getTaskListCount(taskRequest).pipe(catchError((error) => of(error.message))));
|
||||
|
||||
expect(res).toBe('Appname not configured');
|
||||
});
|
||||
});
|
||||
|
@@ -97,6 +97,17 @@ export class TaskListCloudService extends BaseCloudService implements TaskListCl
|
||||
return this.fetchTaskList(requestNode).pipe(map((tasks) => tasks.list.pagination.totalItems));
|
||||
}
|
||||
|
||||
getTaskListCount(requestNode: TaskListRequestModel): Observable<number> {
|
||||
if (!requestNode?.appName) {
|
||||
return throwError(() => new Error('Appname not configured'));
|
||||
}
|
||||
|
||||
const queryUrl = `${this.getBasePath(requestNode.appName)}/query/v1/tasks/count`;
|
||||
const queryData = this.buildQueryData(requestNode);
|
||||
|
||||
return this.post<object, number>(queryUrl, queryData).pipe(map((response) => response || 0));
|
||||
}
|
||||
|
||||
protected buildQueryData(requestNode: TaskListRequestModel) {
|
||||
const queryData: any = {
|
||||
id: requestNode.id,
|
||||
|
Reference in New Issue
Block a user