From 85c022730ba652ac0ac3b2584f1915a4b99d1b63 Mon Sep 17 00:00:00 2001 From: cristinaj Date: Wed, 24 Oct 2018 09:53:00 +0300 Subject: [PATCH] [ADF-3692] Add task details tests (#3905) * Add task details tests * Resolve lint issues * Resolve lint errors * Fix lint errors * fix spellcheck * Fixing a constant name --- e2e/models/APS/TaskModel.js | 15 + .../adf/process_services/taskDetailsPage.ts | 18 + .../start_task_custom_app.e2e.ts | 36 -- .../start_task_task_app.e2e.ts | 45 --- e2e/process-services/task_details.e2e.ts | 375 ++++++++++++++++++ e2e/util/constants.js | 6 +- 6 files changed, 412 insertions(+), 83 deletions(-) create mode 100644 e2e/process-services/task_details.e2e.ts diff --git a/e2e/models/APS/TaskModel.js b/e2e/models/APS/TaskModel.js index 8c9a763f18..ceec24829b 100644 --- a/e2e/models/APS/TaskModel.js +++ b/e2e/models/APS/TaskModel.js @@ -27,7 +27,10 @@ var TaskModel = function (details) { this.dueDate; this.priority; this.parentTaskName; + this.parentTaskId; this.formKey; + this.duration; + this.endDate; this.assignee = {}; this.getName = function () { @@ -58,10 +61,22 @@ var TaskModel = function (details) { return this.priority; }; + this.getDuration = function () { + return this.duration; + }; + + this.getEndDate = function () { + return this.endDate; + }; + this.getParentTaskName = function () { return this.parentTaskName; }; + this.getParentTaskId = function () { + return this.parentTaskId; + }; + this.getFormKey = function () { return this.formKey; }; diff --git a/e2e/pages/adf/process_services/taskDetailsPage.ts b/e2e/pages/adf/process_services/taskDetailsPage.ts index afe21d1a0c..94696157b5 100644 --- a/e2e/pages/adf/process_services/taskDetailsPage.ts +++ b/e2e/pages/adf/process_services/taskDetailsPage.ts @@ -27,6 +27,9 @@ export class TaskDetailsPage { statusField = element(by.css('span[data-automation-id*="status"] span')); categoryField = element(by.css('span[data-automation-id*="category"] span')); parentNameField = element(by.css('span[data-automation-id*="parentName"] span')); + parentTaskIdField = element(by.css('span[data-automation-id*="parentTaskId"] span')); + durationField = element(by.css('span[data-automation-id*="duration"] span')); + endDateField = element(by.css('span[data-automation-id*="endDate"] span')); createdField = element(by.css('span[data-automation-id="card-dateitem-created"] span')); idField = element(by.css('span[data-automation-id*="id"] span')); descriptionField = element(by.css('span[data-automation-id*="description"] span')); @@ -159,6 +162,21 @@ export class TaskDetailsPage { return this.parentNameField.getText(); } + getParentTaskId() { + Util.waitUntilElementIsVisible(this.parentTaskIdField); + return this.parentTaskIdField.getText(); + } + + getDuration() { + Util.waitUntilElementIsVisible(this.durationField); + return this.durationField.getText(); + } + + getEndDate() { + Util.waitUntilElementIsVisible(this.endDateField); + return this.endDateField.getText(); + } + getCreated() { Util.waitUntilElementIsVisible(this.createdField); return this.createdField.getText(); diff --git a/e2e/process-services/start_task_custom_app.e2e.ts b/e2e/process-services/start_task_custom_app.e2e.ts index dd39c746a6..40ff16c609 100644 --- a/e2e/process-services/start_task_custom_app.e2e.ts +++ b/e2e/process-services/start_task_custom_app.e2e.ts @@ -142,42 +142,6 @@ describe('Start Task - Custom App', () => { }); }); - it('[C263946] Should display information box for started task', () => { - processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton(); - taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); - taskPage.createNewTask().addName(tasks[1]).addDescription('Description') - .addForm(app.formName).clickStartButton() - .then(() => { - expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); - }) - .then(() => { - return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); - }) - .then((response) => { - let taskModel = new TaskModel(response.data[0]); - taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); - - expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); - expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); - expect(taskPage.taskDetails().getDescription()).toEqual(taskModel.getDescription()); - expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); - expect(taskPage.taskDetails().getCategory()) - .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); - expect(taskPage.taskDetails().getDueDate()) - .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); - expect(taskPage.taskDetails().getParentName()) - .toEqual(taskModel.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : taskModel.getParentTaskName()); - expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); - - return this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(response.data[0].id); - }) - .then((response) => { - let formModel = new FormModel(response); - expect(taskPage.taskDetails().getFormName()) - .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); - }); - }); - it('[C263947] Should be able to start a task without form', () => { processServicesPage .goToProcessServices() diff --git a/e2e/process-services/start_task_task_app.e2e.ts b/e2e/process-services/start_task_task_app.e2e.ts index cfca56d73f..aec579cda5 100644 --- a/e2e/process-services/start_task_task_app.e2e.ts +++ b/e2e/process-services/start_task_task_app.e2e.ts @@ -116,51 +116,6 @@ describe('Start Task - Task App', () => { }); }); - it('[C260506] Should display information box for started task', () => { - processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); - taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); - taskPage.createNewTask().addName(tasks[1]).addDescription('Description') - .addForm(app.formName).clickStartButton() - .then(() => { - expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); - }) - .then(() => { - return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); - }) - .then((response) => { - let taskModel = new TaskModel(response.data[0]); - taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); - expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); - expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); - expect(taskPage.taskDetails().getDescription()).toEqual(taskModel.getDescription()); - expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); - expect(taskPage.taskDetails().getCategory()) - .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); - expect(taskPage.taskDetails().getDueDate()) - .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); - expect(taskPage.taskDetails().getParentName()) - .toEqual(taskModel.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : taskModel.getParentTaskName()); - expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); - return this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(response.data[0].id); - }) - .then(function (response) { - formModel = new FormModel(response); - expect(taskPage.taskDetails().getFormName()) - .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); - }); - }); - - it('Start task with no form', () => { - processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); - taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); - taskPage.createNewTask().addName(tasks[2]).clickStartButton() - .then(() => { - taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(tasks[2]); - taskPage.formFields().noFormIsDisplayed(); - expect(taskPage.taskDetails().getFormName()).toEqual(CONSTANTS.TASK_DETAILS.NO_FORM); - }); - }); - it('[C260422] Should be possible to cancel a task', () => { processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); diff --git a/e2e/process-services/task_details.e2e.ts b/e2e/process-services/task_details.e2e.ts new file mode 100644 index 0000000000..83b7a2f35a --- /dev/null +++ b/e2e/process-services/task_details.e2e.ts @@ -0,0 +1,375 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import TestConfig = require('../test.config'); + +import AlfrescoApi = require('alfresco-js-api-node'); +import { UsersActions } from '../actions/users.actions'; +import Tenant = require('../models/APS/Tenant'); +import Task = require('../models/APS/Task'); +import TaskModel = require('../models/APS/TaskModel'); +import FormModel = require('../models/APS/FormModel'); +import { AppsActions } from '../actions/APS/apps.actions'; + +import resources = require('../util/resources'); +import CONSTANTS = require('../util/constants'); +import dateFormat = require('dateformat'); + +import { LoginPage } from '../pages/adf/loginPage'; +import { ProcessServicesPage } from '../pages/adf/process_services/processServicesPage'; +import { TasksPage } from '../pages/adf/process_services/tasksPage'; + +describe('Task Details component', () => { + + let processUserModel, appModel; + let app = resources.Files.SIMPLE_APP_WITH_USER_FORM; + let tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File']; + let TASK_DATA_FORMAT = 'mmm dd yyyy'; + let formModel; + let apps; + + let loginPage = new LoginPage(); + let processServicesPage = new ProcessServicesPage(); + let taskPage = new TasksPage(); + + beforeAll(async (done) => { + let users = new UsersActions(); + apps = new AppsActions(); + + this.alfrescoJsApi = new AlfrescoApi({ + provider: 'BPM', + hostBpm: TestConfig.adf.url + }); + + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + + let newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant()); + + processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id); + + await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password); + + appModel = await apps.importPublishDeployApp(this.alfrescoJsApi, app.file_location); + + loginPage.loginToProcessServicesUsingUserModel(processUserModel); + + done(); + }); + + it('[C260506] Should display task details for standalone task - Task App', async () => { + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + taskPage.createNewTask().addName(tasks[1]).addDescription('Description') + .addForm(app.formName).clickStartButton(); + expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); + + let allTasks = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); + }); + + let taskModel = new TaskModel(allTasks.data[0]); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(taskModel.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(taskModel.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : taskModel.getParentTaskName()); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(taskModel.getParentTaskId() === null ? '' : taskModel.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(taskModel.getDuration() === null ? '' : taskModel.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(taskModel.getEndDate() === null ? '' : dateFormat(taskModel.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + + let taskForm = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); + }); + + formModel = new FormModel(taskForm); + + expect(taskPage.taskDetails().getFormName()) + .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); + }); + + it('[C263946] Should display task details for standalone task - Custom App', async () => { + processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + taskPage.createNewTask().addName(tasks[1]).addDescription('Description') + .addForm(app.formName).clickStartButton(); + expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); + + let allTasks = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); + }); + + let taskModel = new TaskModel(allTasks.data[0]); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); + + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(taskModel.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(taskModel.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : taskModel.getParentTaskName()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(taskModel.getDuration() === null ? '' : taskModel.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(taskModel.getEndDate() === null ? '' : dateFormat(taskModel.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(taskModel.getParentTaskId() === null ? '' : taskModel.getParentTaskId()); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + + let taskForm = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); + }); + + formModel = new FormModel(taskForm); + + expect(taskPage.taskDetails().getFormName()) + .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); + }); + + it('[C286706] Should display task details for task - Task App', async () => { + browser.controlFlow().execute(async () => { + await apps.startProcess(this.alfrescoJsApi, appModel); + }); + + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + + expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); + + let allTasks = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({sort: 'created-desc'})); + }); + + let taskModel = new TaskModel(allTasks.data[0]); + + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(taskModel.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(appModel.definition.models[0].name); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(taskModel.getParentTaskId() === null ? '' : taskModel.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(taskModel.getDuration() === null ? '' : taskModel.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(taskModel.getEndDate() === null ? '' : dateFormat(taskModel.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + + let taskForm = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); + }); + + formModel = new FormModel(taskForm); + + expect(taskPage.taskDetails().getFormName()) + .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); + }); + + it('[C286705] Should display task details for task - Custom App', async () => { + browser.controlFlow().execute(async () => { + await apps.startProcess(this.alfrescoJsApi, appModel); + }); + + processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + + expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); + + let allTasks = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({sort: 'created-desc'})); + }); + + let taskModel = new TaskModel(allTasks.data[0]); + + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskModel.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(taskModel.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(taskModel.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(taskModel.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(taskModel.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(taskModel.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : taskModel.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(taskModel.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : taskModel.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(appModel.definition.models[0].name); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(taskModel.getParentTaskId() === null ? '' : taskModel.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(taskModel.getDuration() === null ? '' : taskModel.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(taskModel.getEndDate() === null ? '' : dateFormat(taskModel.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + + let taskForm = await browser.controlFlow().execute(async () => { + return await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id); + }); + + formModel = new FormModel(taskForm); + + expect(taskPage.taskDetails().getFormName()) + .toEqual(formModel.getName() === null ? CONSTANTS.TASK_DETAILS.NO_FORM : formModel.getName()); + }); + + it('[C286708] Should display task details for subtask - Task App', async() => { + let taskName = 'TaskAppSubtask'; + let checklistName = 'TaskAppChecklist'; + browser.controlFlow().execute(async () => { + await this.alfrescoJsApi.activiti.taskApi.createNewTask({'name': taskName}); + }); + + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskName).selectTaskFromTasksList(taskName); + + taskPage.clickOnAddChecklistButton().addName(checklistName).clickCreateChecklistButton(); + taskPage.checkChecklistIsDisplayed(checklistName); + + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(checklistName).selectTaskFromTasksList(checklistName); + + let allTasks = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); + }); + + let checklistTask = new TaskModel(allTasks.data[0]); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(checklistTask.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(checklistTask.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(checklistTask.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(checklistTask.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(checklistTask.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(checklistTask.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : checklistTask.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(checklistTask.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : checklistTask.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(checklistTask.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : checklistTask.getParentTaskName()); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(checklistTask.getParentTaskId() === null ? '' : checklistTask.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(checklistTask.getDuration() === null ? '' : checklistTask.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(checklistTask.getEndDate() === null ? '' : dateFormat(checklistTask.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + }); + + it('[C286707] Should display task details for subtask - Custom App', async() => { + let checklistName = 'CustomAppChecklist'; + + browser.controlFlow().execute(async () => { + await apps.startProcess(this.alfrescoJsApi, appModel); + }); + + processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + + expect(taskPage.taskDetails().getTitle()).toEqual('Activities'); + + taskPage.clickOnAddChecklistButton().addName(checklistName).clickCreateChecklistButton(); + taskPage.checkChecklistIsDisplayed(checklistName); + + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(checklistName).selectTaskFromTasksList(checklistName); + + let allTasks = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' })); + }); + + let checklistTask = new TaskModel(allTasks.data[0]); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(checklistTask.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(checklistTask.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(checklistTask.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(checklistTask.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : taskModel.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(checklistTask.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(checklistTask.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : checklistTask.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(checklistTask.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : checklistTask.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(checklistTask.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : checklistTask.getParentTaskName()); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(checklistTask.getParentTaskId() === null ? '' : checklistTask.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(checklistTask.getDuration() === null ? '' : checklistTask.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(checklistTask.getEndDate() === null ? '' : dateFormat(checklistTask.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING); + }); + + it('[C286709] Should display task details for completed task - Task App', async() => { + let taskName = 'TaskAppCompleted'; + let taskId = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.createNewTask({'name': taskName}); + }); + + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(taskName).selectTaskFromTasksList(taskName); + + taskPage.completeTaskNoForm(); + taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS); + taskPage.tasksListPage().selectTaskFromTasksList(taskName); + + let getTaskResponse = await browser.controlFlow().execute(async () => { + return this.alfrescoJsApi.activiti.taskApi.getTask(taskId.id); + }); + + let completedTask = new TaskModel(getTaskResponse); + taskPage.tasksListPage().checkTaskIsDisplayedInTasksList(completedTask.getName()); + expect(taskPage.taskDetails().getCreated()).toEqual(dateFormat(completedTask.getCreated(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getId()).toEqual(completedTask.getId()); + expect(taskPage.taskDetails().getDescription()) + .toEqual(completedTask.getDescription() === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : completedTask.getDescription()); + expect(taskPage.taskDetails().getAssignee()).toEqual(completedTask.getAssignee().getEntireName()); + expect(taskPage.taskDetails().getCategory()) + .toEqual(completedTask.getCategory() === null ? CONSTANTS.TASK_DETAILS.NO_CATEGORY : completedTask.getCategory()); + expect(taskPage.taskDetails().getDueDate()) + .toEqual(completedTask.getDueDate() === null ? CONSTANTS.TASK_DETAILS.NO_DATE : completedTask.getDueDate()); + expect(taskPage.taskDetails().getParentName()) + .toEqual(completedTask.getParentTaskName() === null ? CONSTANTS.TASK_DETAILS.NO_PARENT : completedTask.getParentTaskName()); + expect(taskPage.taskDetails().getParentTaskId()) + .toEqual(completedTask.getParentTaskId() === null ? '' : completedTask.getParentTaskId()); + expect(taskPage.taskDetails().getDuration()) + .toEqual(completedTask.getDuration() === null ? '' : completedTask.getDuration() + ' ms'); + expect(taskPage.taskDetails().getEndDate()) + .toEqual(completedTask.getEndDate() === null ? '' : dateFormat(completedTask.getEndDate(), TASK_DATA_FORMAT)); + expect(taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.COMPLETED); + }); + +}); diff --git a/e2e/util/constants.js b/e2e/util/constants.js index 6e078fc9b9..c58cbc9f1d 100644 --- a/e2e/util/constants.js +++ b/e2e/util/constants.js @@ -78,11 +78,13 @@ exports.TASK_DETAILS = { NO_FORM: 'No form', NO_PARENT: 'No parent', NO_DATE: 'No date', - NO_CATEGORY: 'No category' + NO_CATEGORY: 'No category', + NO_DESCRIPTION: 'No description' }; exports.TASK_STATUS = { - RUNNING: 'Running' + RUNNING: 'Running', + COMPLETED: 'Completed' }; exports.THEMING = {