From 023476e14faeebc430ea255fb33ce4ba17430bd7 Mon Sep 17 00:00:00 2001 From: Marouan Bentaleb <38426175+marouanbentaleb@users.noreply.github.com> Date: Mon, 19 Aug 2019 21:55:25 +0100 Subject: [PATCH] [ADF-4809] Automation for non-editable task details when completed (#5001) --- .../adf/process-services/taskDetailsPage.ts | 25 ++++++++++++++++ e2e/process-services/task-details.e2e.ts | 30 ++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/e2e/pages/adf/process-services/taskDetailsPage.ts b/e2e/pages/adf/process-services/taskDetailsPage.ts index 2a1f6e8d85..cb2abfe270 100644 --- a/e2e/pages/adf/process-services/taskDetailsPage.ts +++ b/e2e/pages/adf/process-services/taskDetailsPage.ts @@ -64,6 +64,31 @@ export class TaskDetailsPage { attachFormName: ElementFinder = element(by.css('span[class="adf-form-title ng-star-inserted"]')); emptyTaskDetails: ElementFinder = element(by.css('adf-task-details > div > div')); + async checkEditableAssigneeIsNotDisplayed(): Promise { + const editableAssignee = element(by.css('span[data-automation-id="card-textitem-value-assignee"][class*="clickable"]')); + await BrowserVisibility.waitUntilElementIsNotVisible(editableAssignee); + } + + async checkEditableFormIsNotDisplayed(): Promise { + const editableForm = element(by.css('span[data-automation-id="card-textitem-value-formName"][class*="clickable"]')); + await BrowserVisibility.waitUntilElementIsNotVisible(editableForm); + } + + async checkEditDescriptionButtonIsNotDisplayed(): Promise { + const editDescriptionButton = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-description"]')); + await BrowserVisibility.waitUntilElementIsNotVisible(editDescriptionButton); + } + + async checkEditPriorityButtonIsNotDisplayed(): Promise { + const editPriorityButton = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-priority"]')); + await BrowserVisibility.waitUntilElementIsNotVisible(editPriorityButton); + } + + async checkDueDatePickerButtonIsNotDisplayed(): Promise { + const dueDatePickerButton = element(by.css('mat-datetimepicker-toggle[data-automation-id="datepickertoggle-dueDate"]')); + await BrowserVisibility.waitUntilElementIsNotVisible(dueDatePickerButton); + } + getTaskDetailsTitle(): Promise { return BrowserActions.getText(this.taskDetailsTitle); } diff --git a/e2e/process-services/task-details.e2e.ts b/e2e/process-services/task-details.e2e.ts index c70af27caa..7f50415274 100644 --- a/e2e/process-services/task-details.e2e.ts +++ b/e2e/process-services/task-details.e2e.ts @@ -28,7 +28,7 @@ import resources = require('../util/resources'); import CONSTANTS = require('../util/constants'); import dateFormat = require('dateformat'); -import { LoginPage, BrowserActions } from '@alfresco/adf-testing'; +import { LoginPage, BrowserActions, StringUtil } from '@alfresco/adf-testing'; import { TasksPage } from '../pages/adf/process-services/tasksPage'; import { browser } from 'protractor'; @@ -42,6 +42,13 @@ describe('Task Details component', () => { let formModel; let apps; + const taskFormModel = { + 'name': StringUtil.generateRandomString(), + 'description': '', + 'modelType': 2, + 'stencilSet': 0 + }; + const loginPage = new LoginPage(); const taskPage = new TasksPage(); @@ -317,4 +324,25 @@ describe('Task Details component', () => { await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.COMPLETED); }); + it('[C260321] Should not be able to edit a completed task\'s details', async () => { + const taskName = 'TaskCompleted'; + const form = await this.alfrescoJsApi.activiti.modelsApi.createModel(taskFormModel); + const task = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ 'name': taskName }); + await this.alfrescoJsApi.activiti.taskApi.attachForm(task.id, { 'formId': form.id }); + await this.alfrescoJsApi.activiti.taskApi.completeTaskForm(task.id, { values: { label: null } }); + + await (await processServices.goToTaskApp()).clickTasksButton(); + + await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS); + + await taskPage.tasksListPage().checkContentIsDisplayed(taskName); + await taskPage.tasksListPage().selectRow(taskName); + + await taskPage.taskDetails().checkEditableAssigneeIsNotDisplayed(); + await taskPage.taskDetails().checkEditableFormIsNotDisplayed(); + await taskPage.taskDetails().checkEditDescriptionButtonIsNotDisplayed(); + await taskPage.taskDetails().checkEditPriorityButtonIsNotDisplayed(); + await taskPage.taskDetails().checkDueDatePickerButtonIsNotDisplayed(); + }); + });