mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-4357] TaskListCloud - change complete task condition (#4554)
* [ADF-4357] TaskListCloud - change complete task condition * [ADF-4357] - PR changes * [ADF-4357] - add unit test and change owner user * [ADF-4357] - lint * [ADF-4357] - change complete task condition
This commit is contained in:
committed by
Eugenio Romano
parent
3df30f05f3
commit
312d8432df
@@ -20,7 +20,7 @@ import { setupTestBed, IdentityUserService } from '@alfresco/adf-core';
|
||||
import { AlfrescoApiServiceMock, LogService, AppConfigService, CoreModule } from '@alfresco/adf-core';
|
||||
import { TaskCloudService } from './task-cloud.service';
|
||||
import { taskCompleteCloudMock } from '../task-header/mocks/fake-complete-task.mock';
|
||||
import { taskDetailsCloudMock } from '../task-header/mocks/task-details-cloud.mock';
|
||||
import { assignedTaskDetailsCloudMock, createdTaskDetailsCloudMock, emptyOwnerTaskDetailsCloudMock } from '../task-header/mocks/task-details-cloud.mock';
|
||||
import { fakeTaskDetailsCloud } from '../task-header/mocks/fake-task-details-response.mock';
|
||||
import { cloudMockUser } from '../start-task/mock/user-cloud.mock';
|
||||
|
||||
@@ -104,10 +104,30 @@ describe('Task Cloud Service', () => {
|
||||
});
|
||||
|
||||
it('should canCompleteTask', () => {
|
||||
const canCompleteTaskResult = service.canCompleteTask(taskDetailsCloudMock);
|
||||
const canCompleteTaskResult = service.canCompleteTask(assignedTaskDetailsCloudMock);
|
||||
expect(canCompleteTaskResult).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should not complete with wrong asignee and owner different from asigned user', () => {
|
||||
const canCompleteTaskResult = service.canCompleteTask(createdTaskDetailsCloudMock);
|
||||
expect(canCompleteTaskResult).toEqual(false);
|
||||
});
|
||||
|
||||
it('should complete task with owner as null', async(() => {
|
||||
const appName = 'simple-app';
|
||||
const taskId = '68d54a8f';
|
||||
const canCompleteTaskResult = service.canCompleteTask(emptyOwnerTaskDetailsCloudMock);
|
||||
spyOn(alfrescoApiMock, 'getInstance').and.callFake(returnFakeTaskCompleteResults);
|
||||
|
||||
service.completeTask(appName, taskId).subscribe((res: any) => {
|
||||
expect(canCompleteTaskResult).toEqual(true);
|
||||
expect(res).toBeDefined();
|
||||
expect(res).not.toBeNull();
|
||||
expect(res.entry.appName).toBe('simple-app');
|
||||
expect(res.entry.id).toBe('68d54a8f');
|
||||
});
|
||||
}));
|
||||
|
||||
it('should return the task details when claiming a task', (done) => {
|
||||
const appName = 'taskp-app';
|
||||
const assignee = 'user12';
|
||||
|
@@ -71,7 +71,7 @@ export class TaskCloudService {
|
||||
*/
|
||||
canCompleteTask(taskDetails: TaskDetailsCloudModel): boolean {
|
||||
const currentUser = this.identityUserService.getCurrentUserInfo().username;
|
||||
return taskDetails.assignee && taskDetails.owner === currentUser && !taskDetails.isCompleted();
|
||||
return taskDetails.assignee && taskDetails.assignee === currentUser && taskDetails.isAssigned();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -22,7 +22,7 @@ export const mockUsers = [
|
||||
];
|
||||
|
||||
export const cloudMockUser = {
|
||||
id: 'fake-id-1', username: 'superadminuser', firstName: 'first-name-1', lastName: 'last-name-1', email: 'abc@xyz.com'
|
||||
id: 'fake-id-1', username: 'AssignedTaskUser', firstName: 'first-name-1', lastName: 'last-name-1', email: 'abc@xyz.com'
|
||||
};
|
||||
|
||||
export const mockRoles = [
|
||||
|
@@ -78,6 +78,10 @@ export class TaskDetailsCloudModel {
|
||||
return this.status && this.status === TaskStatusEnum.COMPLETED;
|
||||
}
|
||||
|
||||
isAssigned(): boolean {
|
||||
return this.status && this.status === TaskStatusEnum.ASSIGNED;
|
||||
}
|
||||
|
||||
canClaimTask(): boolean {
|
||||
return this.status === TaskStatusEnum.CREATED;
|
||||
}
|
||||
|
@@ -18,7 +18,7 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { setupTestBed, AppConfigService } from '@alfresco/adf-core';
|
||||
import { TaskHeaderCloudComponent } from './task-header-cloud.component';
|
||||
import { taskDetailsCloudMock } from '../mocks/task-details-cloud.mock';
|
||||
import { assignedTaskDetailsCloudMock } from '../mocks/task-details-cloud.mock';
|
||||
import { TaskHeaderCloudModule } from '../task-header-cloud.module';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { of } from 'rxjs';
|
||||
@@ -44,10 +44,10 @@ describe('TaskHeaderCloudComponent', () => {
|
||||
fixture = TestBed.createComponent(TaskHeaderCloudComponent);
|
||||
component = fixture.componentInstance;
|
||||
component.appName = 'myApp';
|
||||
component.taskId = taskDetailsCloudMock.id;
|
||||
component.taskId = assignedTaskDetailsCloudMock.id;
|
||||
service = TestBed.get(TaskCloudService);
|
||||
appConfigService = TestBed.get(AppConfigService);
|
||||
spyOn(service, 'getTaskById').and.returnValue(of(taskDetailsCloudMock));
|
||||
spyOn(service, 'getTaskById').and.returnValue(of(assignedTaskDetailsCloudMock));
|
||||
});
|
||||
|
||||
it('should render empty component if no task details provided', async(() => {
|
||||
@@ -63,7 +63,7 @@ describe('TaskHeaderCloudComponent', () => {
|
||||
|
||||
fixture.whenStable().then(() => {
|
||||
const formNameEl = fixture.debugElement.query(By.css('[data-automation-id="card-textitem-value-assignee"] span'));
|
||||
expect(formNameEl.nativeElement.innerText).toBe('Wilbur Adams');
|
||||
expect(formNameEl.nativeElement.innerText).toBe('AssignedTaskUser');
|
||||
});
|
||||
}));
|
||||
|
||||
|
@@ -17,12 +17,12 @@
|
||||
|
||||
import { TaskDetailsCloudModel } from '../../start-task/models/task-details-cloud.model';
|
||||
|
||||
export const taskDetailsCloudMock = new TaskDetailsCloudModel(
|
||||
export const assignedTaskDetailsCloudMock = new TaskDetailsCloudModel(
|
||||
{
|
||||
'appName': 'task-app',
|
||||
'appVersion': '',
|
||||
'id': '68d54a8f-01f3-11e9-8e36-0a58646002ad',
|
||||
'assignee': 'Wilbur Adams',
|
||||
'assignee': 'AssignedTaskUser',
|
||||
'name': 'This is a new task ',
|
||||
'description': 'This is the description ',
|
||||
'createdDate': 1545048055900,
|
||||
@@ -33,7 +33,59 @@ export const taskDetailsCloudMock = new TaskDetailsCloudModel(
|
||||
'processDefinitionId': null,
|
||||
'processInstanceId': null,
|
||||
'status': 'ASSIGNED',
|
||||
'owner': 'superadminuser',
|
||||
'owner': 'ownerUser',
|
||||
'parentTaskId': null,
|
||||
'formKey': null,
|
||||
'lastModified': 1545048055900,
|
||||
'lastModifiedTo': null,
|
||||
'lastModifiedFrom': null,
|
||||
'standAlone': true
|
||||
}
|
||||
);
|
||||
|
||||
export const createdTaskDetailsCloudMock = new TaskDetailsCloudModel(
|
||||
{
|
||||
'appName': 'task-app',
|
||||
'appVersion': '',
|
||||
'id': '68d54a8f-01f3-11e9-8e36-0a58646002ad',
|
||||
'assignee': 'CreatedTaskUser',
|
||||
'name': 'This is a new task ',
|
||||
'description': 'This is the description ',
|
||||
'createdDate': 1545048055900,
|
||||
'dueDate': 1545091200000,
|
||||
'claimedDate': null,
|
||||
'priority': 5,
|
||||
'category': null,
|
||||
'processDefinitionId': null,
|
||||
'processInstanceId': null,
|
||||
'status': 'CREATED',
|
||||
'owner': 'ownerUser',
|
||||
'parentTaskId': null,
|
||||
'formKey': null,
|
||||
'lastModified': 1545048055900,
|
||||
'lastModifiedTo': null,
|
||||
'lastModifiedFrom': null,
|
||||
'standAlone': true
|
||||
}
|
||||
);
|
||||
|
||||
export const emptyOwnerTaskDetailsCloudMock = new TaskDetailsCloudModel(
|
||||
{
|
||||
'appName': 'task-app',
|
||||
'appVersion': '',
|
||||
'id': '68d54a8f-01f3-11e9-8e36-0a58646002ad',
|
||||
'assignee': 'AssignedTaskUser',
|
||||
'name': 'This is a new task ',
|
||||
'description': 'This is the description ',
|
||||
'createdDate': 1545048055900,
|
||||
'dueDate': 1545091200000,
|
||||
'claimedDate': null,
|
||||
'priority': 5,
|
||||
'category': null,
|
||||
'processDefinitionId': null,
|
||||
'processInstanceId': null,
|
||||
'status': 'ASSIGNED',
|
||||
'owner': null,
|
||||
'parentTaskId': null,
|
||||
'formKey': null,
|
||||
'lastModified': 1545048055900,
|
||||
|
Reference in New Issue
Block a user