[ADF-4149] - Moved the StartTasksCloudComponent/TaskDetailsCloudComponent pages (#4407)

* moved the taskDetailsCloudComponent page and startTaskCloudComponent page

* update the import and fix tests

* update import and tests

* update exports

* update imports

* remove comment and index.ts

* update imports and class name

* remove comment

* Modify task-details-cloud-component page name in task-header-cloud-component

* update method

* remove user-info-dialog

* remove task details page

* revert task details changes

* revert changes
This commit is contained in:
rgherghelas
2019-03-18 13:58:39 +02:00
committed by Eugenio Romano
parent 2e9c57cf45
commit 5f17ee0b01
7 changed files with 77 additions and 114 deletions

View File

@@ -1,46 +0,0 @@
/*!
* @license
* Copyright 2019 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 { by, element } from 'protractor';
import { Util } from '../../../../util/util';
export class TaskDetailsPage {
taskDetailsHeader = element(by.css(`h4[data-automation-id='task-details-header']`));
taskPropertyList = element(by.css('adf-cloud-task-header adf-card-view div[class="adf-property-list"]'));
getTaskDetailsHeader() {
Util.waitUntilElementIsOnPage(this.taskPropertyList);
return this.taskDetailsHeader.getText();
}
checkPropertyIsDisplayed(propertyName) {
Util.waitUntilElementIsVisible(element(by.css(`div[data-automation-id="header-${propertyName}"]`)));
return element(by.css(`div[data-automation-id="header-${propertyName}"]`));
}
getPropertyLabel(propertyLabel) {
Util.waitUntilElementIsVisible(this.checkPropertyIsDisplayed(propertyLabel).element(by.css(`div[data-automation-id="card-textitem-label-${propertyLabel}"]`)));
return this.checkPropertyIsDisplayed(propertyLabel).element(by.css(`div[data-automation-id="card-textitem-label-${propertyLabel}"]`)).getText();
}
getPropertyValue(propertyValue) {
Util.waitUntilElementIsVisible(this.checkPropertyIsDisplayed(propertyValue).element(by.css(`span[data-automation-id="card-textitem-value-${propertyValue}"]`)));
return this.checkPropertyIsDisplayed(propertyValue).element(by.css(`span[data-automation-id="card-textitem-value-${propertyValue}"]`)).getText();
}
}

View File

@@ -23,6 +23,7 @@ import { TabsPage } from '@alfresco/adf-testing';
export class TaskDetailsPage {
appSettingsTogglesClass = new AppSettingsToggles();
formContent = element(by.css('adf-form'));
formNameField = element(by.css('span[data-automation-id*="formName"] span'));
assigneeField = element(by.css('span[data-automation-id*="assignee"] span'));

View File

@@ -21,21 +21,21 @@ import { AppListCloudPage } from '@alfresco/adf-testing';
import TestConfig = require('../test.config');
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { StartTasksCloudComponent } from '../pages/adf/process-cloud/startTasksCloudComponent';
import { StartTasksCloudPage } from '@alfresco/adf-testing';
import { Util } from '../util/util';
import { PeopleCloudComponent } from '../pages/adf/process-cloud/peopleCloudComponent';
import { TaskDetailsPage } from '../pages/adf/demo-shell/process-services/taskDetailsPage';
import { TaskHeaderCloudPage } from '@alfresco/adf-testing';
import { browser } from 'protractor';
describe('Start Task', () => {
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const taskDetailsPage = new TaskDetailsPage();
const taskHeaderCloudPage = new TaskHeaderCloudPage();
const navigationBarPage = new NavigationBarPage();
const appListCloudComponent = new AppListCloudPage();
const tasksCloudDemoPage = new TasksCloudDemoPage();
const startTask = new StartTasksCloudComponent();
const startTask = new StartTasksCloudPage();
const peopleCloudComponent = new PeopleCloudComponent();
const standaloneTaskName = Util.generateRandomString(5);
const unassignedTaskName = Util.generateRandomString(5);
@@ -157,10 +157,9 @@ describe('Start Task', () => {
tasksCloudDemoPage.taskListCloudComponent().getDataTable().waitForTableBody();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(unassignedTaskName);
let taskId = tasksCloudDemoPage.taskListCloudComponent().getIdCellValue(unassignedTaskName);
tasksCloudDemoPage.taskListCloudComponent().getRow(unassignedTaskName).click();
expect(taskDetailsPage.getTaskDetailsHeader()).toContain(taskId);
expect(taskDetailsPage.getPropertyLabel('assignee')).toBe('Assignee');
expect(taskDetailsPage.getPropertyValue('assignee')).toBe('No assignee');
tasksCloudDemoPage.taskListCloudComponent().selectRow(unassignedTaskName);
expect(taskHeaderCloudPage.getTaskDetailsHeader()).toContain(taskId);
expect(taskHeaderCloudPage.getAssignee()).toBe('No assignee');
});
});

View File

@@ -27,7 +27,7 @@ import { LoginSSOPage } from '@alfresco/adf-testing';
import { SettingsPage } from '../pages/adf/settingsPage';
import { AppListCloudPage } from '@alfresco/adf-testing';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { TaskDetailsCloudComponent } from '../pages/adf/process-cloud/taskDetailsCloudComponent';
import { TaskHeaderCloudPage } from '@alfresco/adf-testing';
import { browser } from 'protractor';
describe('Task Header cloud component', () => {
@@ -38,7 +38,7 @@ describe('Task Header cloud component', () => {
const simpleApp = 'simple-app';
let priority = 30, description = 'descriptionTask', formatDate = 'MMM DD YYYY';
let taskDetailsCloudPage = new TaskDetailsCloudComponent();
let taskHeaderCloudPage = new TaskHeaderCloudPage();
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
@@ -88,19 +88,19 @@ describe('Task Header cloud component', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(basicCreatedTaskName);
tasksCloudDemoPage.taskListCloudComponent().selectRow(basicCreatedTaskName);
expect(taskDetailsCloudPage.getId()).toEqual(basicCreatedTask.entry.id);
expect(taskDetailsCloudPage.getDescription())
expect(taskHeaderCloudPage.getId()).toEqual(basicCreatedTask.entry.id);
expect(taskHeaderCloudPage.getDescription())
.toEqual(basicCreatedTask.entry.description === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : basicCreatedTask.entry.description);
expect(taskDetailsCloudPage.getStatus()).toEqual(basicCreatedTask.entry.status);
expect(taskDetailsCloudPage.getPriority()).toEqual(basicCreatedTask.entry.priority === 0 ? '' : basicCreatedTask.entry.priority.toString());
expect(taskDetailsCloudPage.getCategory()).toEqual(basicCreatedTask.entry.category === null ?
expect(taskHeaderCloudPage.getStatus()).toEqual(basicCreatedTask.entry.status);
expect(taskHeaderCloudPage.getPriority()).toEqual(basicCreatedTask.entry.priority === 0 ? '' : basicCreatedTask.entry.priority.toString());
expect(taskHeaderCloudPage.getCategory()).toEqual(!basicCreatedTask.entry.category ?
CONSTANTS.TASK_DETAILS.NO_CATEGORY : basicCreatedTask.entry.category);
expect(taskDetailsCloudPage.getDueDate()).toEqual(basicCreatedTask.entry.dueDate === null ?
expect(taskHeaderCloudPage.getDueDate()).toEqual(basicCreatedTask.entry.dueDate === null ?
CONSTANTS.TASK_DETAILS.NO_DATE : basicCreatedDate);
expect(taskDetailsCloudPage.getCreated()).toEqual(basicCreatedDate);
expect(taskDetailsCloudPage.getAssignee()).toEqual(basicCreatedTask.entry.assignee === null ? '' : basicCreatedTask.entry.assignee);
expect(taskDetailsCloudPage.getParentName()).toEqual(CONSTANTS.TASK_DETAILS.NO_PARENT);
expect(taskDetailsCloudPage.getParentTaskId())
expect(taskHeaderCloudPage.getCreated()).toEqual(basicCreatedDate);
expect(taskHeaderCloudPage.getAssignee()).toEqual(basicCreatedTask.entry.assignee === null ? '' : basicCreatedTask.entry.assignee);
expect(taskHeaderCloudPage.getParentName()).toEqual(CONSTANTS.TASK_DETAILS.NO_PARENT);
expect(taskHeaderCloudPage.getParentTaskId())
.toEqual(basicCreatedTask.entry.parentTaskId === null ? '' : basicCreatedTask.entry.parentTaskId);
});
@@ -108,19 +108,19 @@ describe('Task Header cloud component', () => {
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
expect(taskDetailsCloudPage.getId()).toEqual(completedTask.entry.id);
expect(taskDetailsCloudPage.getDescription())
expect(taskHeaderCloudPage.getId()).toEqual(completedTask.entry.id);
expect(taskHeaderCloudPage.getDescription())
.toEqual(completedTask.entry.description === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : completedTask.entry.description);
expect(taskDetailsCloudPage.getStatus()).toEqual(completedTask.entry.status);
expect(taskDetailsCloudPage.getPriority()).toEqual(completedTask.entry.priority === '0' ? '' : completedTask.entry.priority.toString());
expect(taskDetailsCloudPage.getCategory()).toEqual(completedTask.entry.category === null ?
expect(taskHeaderCloudPage.getStatus()).toEqual(completedTask.entry.status);
expect(taskHeaderCloudPage.getPriority()).toEqual(completedTask.entry.priority === '0' ? '' : completedTask.entry.priority.toString());
expect(taskHeaderCloudPage.getCategory()).toEqual(!completedTask.entry.category ?
CONSTANTS.TASK_DETAILS.NO_CATEGORY : completedTask.entry.category);
expect(taskDetailsCloudPage.getDueDate()).toEqual(completedTask.entry.dueDate === null ?
expect(taskHeaderCloudPage.getDueDate()).toEqual(completedTask.entry.dueDate === null ?
CONSTANTS.TASK_DETAILS.NO_DATE : completedCreatedDate);
expect(taskDetailsCloudPage.getCreated()).toEqual(completedCreatedDate);
expect(taskDetailsCloudPage.getAssignee()).toEqual(completedTask.entry.assignee === null ? '' : completedTask.entry.assignee);
expect(taskDetailsCloudPage.getParentName()).toEqual(CONSTANTS.TASK_DETAILS.NO_PARENT);
expect(taskDetailsCloudPage.getParentTaskId())
expect(taskHeaderCloudPage.getCreated()).toEqual(completedCreatedDate);
expect(taskHeaderCloudPage.getAssignee()).toEqual(completedTask.entry.assignee === null ? '' : completedTask.entry.assignee);
expect(taskHeaderCloudPage.getParentName()).toEqual(CONSTANTS.TASK_DETAILS.NO_PARENT);
expect(taskHeaderCloudPage.getParentTaskId())
.toEqual(completedTask.entry.parentTaskId === null ? '' : completedTask.entry.parentTaskId);
});
@@ -128,19 +128,19 @@ describe('Task Header cloud component', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(subTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(subTask.entry.name);
expect(taskDetailsCloudPage.getId()).toEqual(subTask.entry.id);
expect(taskDetailsCloudPage.getDescription())
expect(taskHeaderCloudPage.getId()).toEqual(subTask.entry.id);
expect(taskHeaderCloudPage.getDescription())
.toEqual(subTask.entry.description === null ? CONSTANTS.TASK_DETAILS.NO_DESCRIPTION : subTask.entry.description);
expect(taskDetailsCloudPage.getStatus()).toEqual(subTask.entry.status);
expect(taskDetailsCloudPage.getPriority()).toEqual(subTask.entry.priority === 0 ? '' : subTask.entry.priority.toString());
expect(taskDetailsCloudPage.getCategory()).toEqual(subTask.entry.category === null ?
expect(taskHeaderCloudPage.getStatus()).toEqual(subTask.entry.status);
expect(taskHeaderCloudPage.getPriority()).toEqual(subTask.entry.priority === 0 ? '' : subTask.entry.priority.toString());
expect(taskHeaderCloudPage.getCategory()).toEqual(!subTask.entry.category ?
CONSTANTS.TASK_DETAILS.NO_CATEGORY : subTask.entry.category);
expect(taskDetailsCloudPage.getDueDate()).toEqual(subTask.entry.dueDate === null ?
expect(taskHeaderCloudPage.getDueDate()).toEqual(subTask.entry.dueDate === null ?
CONSTANTS.TASK_DETAILS.NO_DATE : subTaskCreatedDate);
expect(taskDetailsCloudPage.getCreated()).toEqual(subTaskCreatedDate);
expect(taskDetailsCloudPage.getAssignee()).toEqual(subTask.entry.assignee === null ? '' : subTask.entry.assignee);
expect(taskDetailsCloudPage.getParentName()).toEqual(basicCreatedTask.entry.name);
expect(taskDetailsCloudPage.getParentTaskId())
expect(taskHeaderCloudPage.getCreated()).toEqual(subTaskCreatedDate);
expect(taskHeaderCloudPage.getAssignee()).toEqual(subTask.entry.assignee === null ? '' : subTask.entry.assignee);
expect(taskHeaderCloudPage.getParentName()).toEqual(basicCreatedTask.entry.name);
expect(taskHeaderCloudPage.getParentTaskId())
.toEqual(subTask.entry.parentTaskId === null ? '' : subTask.entry.parentTaskId);
});

View File

@@ -5,3 +5,5 @@
export * from './login-sso.page';
export * from '../../core/pages/user-info.page';
export * from '../app/app-list-cloud.page';
export * from './start-tasks-cloud-component.page';
export * from './task-header-cloud-component.page';

View File

@@ -15,10 +15,10 @@
* limitations under the License.
*/
import { Util } from '../../../util/util';
import { element, by, Key, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
export class StartTasksCloudComponent {
export class StartTasksCloudPage {
name = element(by.css('input[id="name_id"]'));
dueDate = element(by.css('input[id="date_id"]'));
@@ -30,55 +30,55 @@ export class StartTasksCloudComponent {
form = element(by.css('adf-cloud-start-task form'));
checkFormIsDisplayed() {
Util.waitUntilElementIsVisible(this.form);
BrowserVisibility.waitUntilElementIsVisible(this.form);
return this;
}
addName(userName) {
Util.waitUntilElementIsVisible(this.name);
BrowserVisibility.waitUntilElementIsVisible(this.name);
this.name.clear();
this.name.sendKeys(userName);
return this;
}
addDescription(userDescription) {
Util.waitUntilElementIsVisible(this.description);
BrowserVisibility.waitUntilElementIsVisible(this.description);
this.description.sendKeys(userDescription);
return this;
}
addPriority(userPriority) {
Util.waitUntilElementIsVisible(this.priority);
BrowserVisibility.waitUntilElementIsVisible(this.priority);
this.priority.sendKeys(userPriority);
return this;
}
addDueDate(date) {
Util.waitUntilElementIsVisible(this.dueDate);
BrowserVisibility.waitUntilElementIsVisible(this.dueDate);
this.clearField(this.dueDate);
this.dueDate.sendKeys(date);
return this;
}
clickStartButton() {
Util.waitUntilElementIsVisible(this.startButton);
Util.waitUntilElementIsClickable(this.startButton);
BrowserVisibility.waitUntilElementIsVisible(this.startButton);
BrowserVisibility.waitUntilElementIsClickable(this.startButton);
return this.startButton.click();
}
checkStartButtonIsEnabled() {
Util.waitUntilElementIsVisible(this.startButtonEnabled);
BrowserVisibility.waitUntilElementIsVisible(this.startButtonEnabled);
return this;
}
checkStartButtonIsDisabled() {
Util.waitUntilElementIsVisible(this.startButton.getAttribute('disabled'));
BrowserVisibility.waitUntilElementIsVisible(this.startButton.getAttribute('disabled'));
return this;
}
clickCancelButton() {
Util.waitUntilElementIsVisible(this.cancelButton);
Util.waitUntilElementIsClickable(this.cancelButton);
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
BrowserVisibility.waitUntilElementIsClickable(this.cancelButton);
return this.cancelButton.click();
}
@@ -90,7 +90,7 @@ export class StartTasksCloudComponent {
checkValidationErrorIsDisplayed(error, elementRef = 'mat-error') {
const errorElement = element(by.cssContainingText(elementRef, error));
Util.waitUntilElementIsVisible(errorElement);
BrowserVisibility.waitUntilElementIsVisible(errorElement);
return this;
}
@@ -105,7 +105,7 @@ export class StartTasksCloudComponent {
}
clearField(locator) {
Util.waitUntilElementIsVisible(locator);
BrowserVisibility.waitUntilElementIsVisible(locator);
locator.getAttribute('value').then((result) => {
for (let i = result.length; i >= 0; i--) {
locator.sendKeys(protractor.Key.BACK_SPACE);

View File

@@ -15,10 +15,10 @@
* limitations under the License.
*/
import { Util } from '../../../util/util';
import { element, by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
export class TaskDetailsCloudComponent {
export class TaskHeaderCloudPage {
assigneeField = element(by.css('span[data-automation-id*="assignee"] span'));
statusField = element(by.css('span[data-automation-id*="status"] span'));
@@ -31,60 +31,67 @@ export class TaskDetailsCloudComponent {
endDateField = element.all(by.css('span[data-automation-id*="endDate"] span')).first();
idField = element.all(by.css('span[data-automation-id*="id"] span')).first();
descriptionField = element(by.css('span[data-automation-id*="description"] span'));
taskDetailsHeader = element(by.css(`h4[data-automation-id='task-details-header']`));
taskPropertyList = element(by.css('adf-cloud-task-header adf-card-view div[class="adf-property-list"]'));
getAssignee() {
Util.waitUntilElementIsVisible(this.assigneeField);
BrowserVisibility.waitUntilElementIsVisible(this.assigneeField);
return this.assigneeField.getText();
}
getStatus() {
Util.waitUntilElementIsVisible(this.statusField);
BrowserVisibility.waitUntilElementIsVisible(this.statusField);
return this.statusField.getText();
}
getPriority() {
Util.waitUntilElementIsVisible(this.priorityField);
BrowserVisibility.waitUntilElementIsVisible(this.priorityField);
return this.priorityField.getText();
}
getCategory() {
Util.waitUntilElementIsVisible(this.categoryField);
BrowserVisibility.waitUntilElementIsVisible(this.categoryField);
return this.categoryField.getText();
}
getParentName() {
Util.waitUntilElementIsVisible(this.parentNameField);
BrowserVisibility.waitUntilElementIsVisible(this.parentNameField);
return this.parentNameField.getText();
}
getParentTaskId() {
Util.waitUntilElementIsVisible(this.parentTaskIdField);
BrowserVisibility.waitUntilElementIsVisible(this.parentTaskIdField);
return this.parentTaskIdField.getText();
}
getEndDate() {
Util.waitUntilElementIsVisible(this.endDateField);
BrowserVisibility.waitUntilElementIsVisible(this.endDateField);
return this.endDateField.getText();
}
getCreated() {
Util.waitUntilElementIsVisible(this.createdField);
BrowserVisibility.waitUntilElementIsVisible(this.createdField);
return this.createdField.getText();
}
getId() {
Util.waitUntilElementIsVisible(this.idField);
BrowserVisibility.waitUntilElementIsVisible(this.idField);
return this.idField.getText();
}
getDescription() {
Util.waitUntilElementIsVisible(this.descriptionField);
BrowserVisibility.waitUntilElementIsVisible(this.descriptionField);
return this.descriptionField.getText();
}
getDueDate() {
Util.waitUntilElementIsVisible(this.dueDateField);
BrowserVisibility.waitUntilElementIsVisible(this.dueDateField);
return this.dueDateField.getText();
}
getTaskDetailsHeader() {
BrowserVisibility.waitUntilElementIsVisible(this.taskPropertyList);
return this.taskDetailsHeader.getText();
}
}