[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:
Silviu Popa
2019-04-10 03:30:57 +03:00
committed by Eugenio Romano
parent 3df30f05f3
commit 312d8432df
6 changed files with 87 additions and 11 deletions

View File

@@ -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';

View File

@@ -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();
}
/**

View File

@@ -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 = [

View File

@@ -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;
}

View File

@@ -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');
});
}));

View File

@@ -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,