mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-3780]Implement task list cloud component tests (#4111)
This commit is contained in:
committed by
Eugenio Romano
parent
c17241fedc
commit
aa6ba28427
@@ -28,13 +28,14 @@ export class Tasks {
|
|||||||
await this.api.login(username, password);
|
await this.api.login(username, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
async createStandaloneTask(taskName, appName) {
|
async createStandaloneTask(taskName, appName, options?) {
|
||||||
const path = '/' + appName + '-rb/v1/tasks';
|
const path = '/' + appName + '-rb/v1/tasks';
|
||||||
const method = 'POST';
|
const method = 'POST';
|
||||||
|
|
||||||
const queryParams = {}, postBody = {
|
const queryParams = {}, postBody = {
|
||||||
'name': taskName,
|
'name': taskName,
|
||||||
'payloadType': 'CreateTaskPayload'
|
'payloadType': 'CreateTaskPayload',
|
||||||
|
...options
|
||||||
};
|
};
|
||||||
|
|
||||||
const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
|
const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
|
||||||
@@ -61,4 +62,21 @@ export class Tasks {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async deleteTask(taskId, appName) {
|
||||||
|
const path = '/' + appName + '-rb/v1/tasks/' + taskId;
|
||||||
|
const method = 'DELETE';
|
||||||
|
|
||||||
|
const queryParams = {}, postBody = {};
|
||||||
|
|
||||||
|
const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
async createAndCompleteTask (taskName, appName) {
|
||||||
|
let task = await this.createStandaloneTask(taskName, appName);
|
||||||
|
await this.claimTask(task.entry.id, appName);
|
||||||
|
await this.completeTask(task.entry.id, appName);
|
||||||
|
return task;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -35,11 +35,9 @@ export class DataTablePage {
|
|||||||
reset = element(by.xpath(`//span[contains(text(),'Reset to default')]/..`));
|
reset = element(by.xpath(`//span[contains(text(),'Reset to default')]/..`));
|
||||||
replaceColumnsElement = element(by.xpath(`//span[contains(text(),'Replace columns')]/..`));
|
replaceColumnsElement = element(by.xpath(`//span[contains(text(),'Replace columns')]/..`));
|
||||||
createdOnColumn = element(by.css(`div[data-automation-id='auto_id_createdOn']`));
|
createdOnColumn = element(by.css(`div[data-automation-id='auto_id_createdOn']`));
|
||||||
pageLoaded = element(by.css(`div[data-automation-id='auto_id_id']`));
|
|
||||||
tableBody = element.all(by.css(`div[class='adf-datatable-body']`)).first();
|
tableBody = element.all(by.css(`div[class='adf-datatable-body']`)).first();
|
||||||
spinner = element(by.css('mat-progress-spinner'));
|
spinner = element(by.css('mat-progress-spinner'));
|
||||||
rows = by.css(`adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row']`);
|
rows = by.css(`adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row']`);
|
||||||
nameColumn = by.css(`adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[title='Name'] span`);
|
|
||||||
|
|
||||||
constructor(rootElement: ElementFinder = element(by.css('adf-datatable'))) {
|
constructor(rootElement: ElementFinder = element(by.css('adf-datatable'))) {
|
||||||
this.rootElement = rootElement;
|
this.rootElement = rootElement;
|
||||||
@@ -55,7 +53,7 @@ export class DataTablePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getAllRowsColumnValues(locator) {
|
async getAllRowsColumnValues(locator) {
|
||||||
let columnLocator = by.css("adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[title='" + column + "'] span");
|
let columnLocator = by.css("adf-datatable div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[title='" + locator + "'] span");
|
||||||
Util.waitUntilElementIsVisible(element.all(columnLocator).first());
|
Util.waitUntilElementIsVisible(element.all(columnLocator).first());
|
||||||
let initialList = await element.all(columnLocator).getText();
|
let initialList = await element.all(columnLocator).getText();
|
||||||
return initialList.filter((el) => el);
|
return initialList.filter((el) => el);
|
||||||
@@ -243,6 +241,10 @@ export class DataTablePage {
|
|||||||
Util.waitUntilElementIsPresent(this.spinner);
|
Util.waitUntilElementIsPresent(this.spinner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkSpinnerIsNotDisplayed() {
|
||||||
|
Util.waitUntilElementIsNotOnPage(this.spinner);
|
||||||
|
}
|
||||||
|
|
||||||
checkRowIsDisplayedByName(filename) {
|
checkRowIsDisplayedByName(filename) {
|
||||||
Util.waitUntilElementIsVisible(element.all(by.css(`div[filename="${filename}"]`)).first());
|
Util.waitUntilElementIsVisible(element.all(by.css(`div[filename="${filename}"]`)).first());
|
||||||
}
|
}
|
||||||
|
@@ -65,7 +65,7 @@ export class ProcessCloudDemoPage {
|
|||||||
return new ProcessFiltersCloudComponent(element(by.css(`span[data-automation-id="${filterName}_filter"]`)));
|
return new ProcessFiltersCloudComponent(element(by.css(`span[data-automation-id="${filterName}_filter"]`)));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkActiveFilterActive() {
|
getActiveFilterName() {
|
||||||
Util.waitUntilElementIsVisible(this.activeFilter);
|
Util.waitUntilElementIsVisible(this.activeFilter);
|
||||||
return this.activeFilter.getText();
|
return this.activeFilter.getText();
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@ import { Util } from '../../../util/util';
|
|||||||
|
|
||||||
import { TaskFiltersCloudComponent } from '../process-cloud/taskFiltersCloudComponent';
|
import { TaskFiltersCloudComponent } from '../process-cloud/taskFiltersCloudComponent';
|
||||||
import { TaskListCloudComponent } from '../process-cloud/taskListCloudComponent';
|
import { TaskListCloudComponent } from '../process-cloud/taskListCloudComponent';
|
||||||
|
import { EditTaskFilterCloudComponent } from '../process-cloud/editTaskFilterCloudComponent';
|
||||||
import { element, by } from 'protractor';
|
import { element, by } from 'protractor';
|
||||||
|
|
||||||
export class TasksCloudDemoPage {
|
export class TasksCloudDemoPage {
|
||||||
@@ -26,6 +27,9 @@ export class TasksCloudDemoPage {
|
|||||||
myTasks = element(by.css('span[data-automation-id="my-tasks-filter"]'));
|
myTasks = element(by.css('span[data-automation-id="my-tasks-filter"]'));
|
||||||
completedTasks = element(by.css('span[data-automation-id="completed-tasks-filter"]'));
|
completedTasks = element(by.css('span[data-automation-id="completed-tasks-filter"]'));
|
||||||
activeFilter = element(by.css("mat-list-item[class*='active'] span"));
|
activeFilter = element(by.css("mat-list-item[class*='active'] span"));
|
||||||
|
taskFilters = element(by.css("mat-expansion-panel[data-automation-id='Task Filters']"));
|
||||||
|
|
||||||
|
editTaskFilterCloud = new EditTaskFilterCloudComponent();
|
||||||
|
|
||||||
taskFiltersCloudComponent(filter) {
|
taskFiltersCloudComponent(filter) {
|
||||||
return new TaskFiltersCloudComponent(filter);
|
return new TaskFiltersCloudComponent(filter);
|
||||||
@@ -35,6 +39,10 @@ export class TasksCloudDemoPage {
|
|||||||
return new TaskListCloudComponent();
|
return new TaskListCloudComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
editTaskFilterCloudComponent() {
|
||||||
|
return this.editTaskFilterCloud;
|
||||||
|
}
|
||||||
|
|
||||||
myTasksFilter() {
|
myTasksFilter() {
|
||||||
return new TaskFiltersCloudComponent(this.myTasks);
|
return new TaskFiltersCloudComponent(this.myTasks);
|
||||||
}
|
}
|
||||||
@@ -47,9 +55,17 @@ export class TasksCloudDemoPage {
|
|||||||
return new TaskFiltersCloudComponent(element(by.css(`span[data-automation-id="${filterName}_filter"]`)));
|
return new TaskFiltersCloudComponent(element(by.css(`span[data-automation-id="${filterName}_filter"]`)));
|
||||||
}
|
}
|
||||||
|
|
||||||
checkActiveFilterActive () {
|
getActiveFilterName() {
|
||||||
Util.waitUntilElementIsVisible(this.activeFilter);
|
Util.waitUntilElementIsVisible(this.activeFilter);
|
||||||
return this.activeFilter.getText();
|
return this.activeFilter.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAllRowsByIdColumn() {
|
||||||
|
return new TaskListCloudComponent().getAllRowsByColumn('Id');
|
||||||
|
}
|
||||||
|
|
||||||
|
clickOnTaskFilters() {
|
||||||
|
Util.waitUntilElementIsVisible(this.taskFilters);
|
||||||
|
return this.taskFilters.click();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
81
e2e/pages/adf/process-cloud/editTaskFilterCloudComponent.ts
Normal file
81
e2e/pages/adf/process-cloud/editTaskFilterCloudComponent.ts
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
/*!
|
||||||
|
* @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 { Util } from '../../../util/util';
|
||||||
|
import { by, element, protractor } from 'protractor';
|
||||||
|
|
||||||
|
export class EditTaskFilterCloudComponent {
|
||||||
|
|
||||||
|
customiseFilter = element(by.id('adf-edit-task-filter-title-id'));
|
||||||
|
selectedOption = element(by.css('mat-option[class*="mat-selected"]'));
|
||||||
|
assignment = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-assignment"]'));
|
||||||
|
statusBy = by.css('mat-select[data-automation-id="adf-cloud-edit-task-property-state"]');
|
||||||
|
sortBy = by.css('mat-select[data-automation-id="adf-cloud-edit-task-property-sort"]');
|
||||||
|
orderBy = by.css('mat-select[data-automation-id="adf-cloud-edit-task-property-order"]');
|
||||||
|
|
||||||
|
clickCustomiseFilterHeader() {
|
||||||
|
Util.waitUntilElementIsVisible(this.customiseFilter);
|
||||||
|
this.customiseFilter.click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
setStateFilterDropDown(option) {
|
||||||
|
this.clickOnDropDownArrow(this.statusBy);
|
||||||
|
|
||||||
|
let stateElement = element.all(by.cssContainingText('mat-option span', option)).first();
|
||||||
|
Util.waitUntilElementIsClickable(stateElement);
|
||||||
|
Util.waitUntilElementIsVisible(stateElement);
|
||||||
|
stateElement.click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
setSortFilterDropDown(option) {
|
||||||
|
this.clickOnDropDownArrow(this.sortBy);
|
||||||
|
|
||||||
|
let sortElement = element.all(by.cssContainingText('mat-option span', option)).first();
|
||||||
|
Util.waitUntilElementIsClickable(sortElement);
|
||||||
|
Util.waitUntilElementIsVisible(sortElement);
|
||||||
|
sortElement.click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
setOrderFilterDropDown(option) {
|
||||||
|
this.clickOnDropDownArrow(this.orderBy);
|
||||||
|
|
||||||
|
let orderElement = element.all(by.cssContainingText('mat-option span', option)).first();
|
||||||
|
Util.waitUntilElementIsClickable(orderElement);
|
||||||
|
Util.waitUntilElementIsVisible(orderElement);
|
||||||
|
orderElement.click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
clickOnDropDownArrow(option) {
|
||||||
|
let dropDownArrow = element(option);
|
||||||
|
Util.waitUntilElementIsVisible(dropDownArrow);
|
||||||
|
dropDownArrow.click();
|
||||||
|
Util.waitUntilElementIsVisible(this.selectedOption);
|
||||||
|
}
|
||||||
|
|
||||||
|
setAssignment(option) {
|
||||||
|
Util.waitUntilElementIsVisible(this.assignment);
|
||||||
|
this.assignment.clear();
|
||||||
|
this.assignment.sendKeys(option);
|
||||||
|
this.assignment.sendKeys(protractor.Key.ENTER);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -40,4 +40,8 @@ export class TaskListCloudComponent {
|
|||||||
return this.noTasksFound.getText();
|
return this.noTasksFound.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAllRowsByColumn(column) {
|
||||||
|
return this.dataTable.getAllRowsColumnValues(column);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -86,34 +86,34 @@ describe('Process filters cloud', () => {
|
|||||||
it('[C290043] Should display process in Running Processes List when process is started', () => {
|
it('[C290043] Should display process in Running Processes List when process is started', () => {
|
||||||
processCloudDemoPage.runningProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.runningProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.runningProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.runningProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('Running Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('Running Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(runningProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(runningProcess.entry.id);
|
||||||
|
|
||||||
processCloudDemoPage.completedProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.completedProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.completedProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.completedProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('Completed Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('Completed Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsNotDisplayed(runningProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsNotDisplayed(runningProcess.entry.id);
|
||||||
|
|
||||||
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('All Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(runningProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(runningProcess.entry.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C290044] Should display process in Completed Processes List when process is completed', () => {
|
it('[C290044] Should display process in Completed Processes List when process is completed', () => {
|
||||||
processCloudDemoPage.runningProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.runningProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.runningProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.runningProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('Running Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('Running Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsNotDisplayed(completedProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsNotDisplayed(completedProcess.entry.id);
|
||||||
|
|
||||||
processCloudDemoPage.completedProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.completedProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.completedProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.completedProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('Completed Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('Completed Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(completedProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(completedProcess.entry.id);
|
||||||
|
|
||||||
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
||||||
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
||||||
expect(processCloudDemoPage.checkActiveFilterActive()).toBe('All Processes');
|
expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes');
|
||||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(completedProcess.entry.id);
|
processCloudDemoPage.processListCloudComponent().getDataTable().checkContentIsDisplayed(completedProcess.entry.id);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -64,11 +64,11 @@ describe('Task filters cloud', () => {
|
|||||||
await tasksService.claimTask(task.entry.id, simpleApp);
|
await tasksService.claimTask(task.entry.id, simpleApp);
|
||||||
|
|
||||||
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
|
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
|
||||||
expect(tasksCloudDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('Completed Tasks');
|
||||||
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(newTask);
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(newTask);
|
||||||
|
|
||||||
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
|
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
|
||||||
expect(tasksCloudDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
|
||||||
|
|
||||||
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(newTask);
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(newTask);
|
||||||
});
|
});
|
||||||
@@ -81,11 +81,11 @@ describe('Task filters cloud', () => {
|
|||||||
await tasksService.completeTask(task.entry.id, simpleApp);
|
await tasksService.completeTask(task.entry.id, simpleApp);
|
||||||
|
|
||||||
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
|
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
|
||||||
expect(tasksCloudDemoPage.checkActiveFilterActive()).toBe('My Tasks');
|
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
|
||||||
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(completedTask);
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(completedTask);
|
||||||
|
|
||||||
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
|
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
|
||||||
expect(tasksCloudDemoPage.checkActiveFilterActive()).toBe('Completed Tasks');
|
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('Completed Tasks');
|
||||||
|
|
||||||
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(completedTask);
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(completedTask);
|
||||||
});
|
});
|
||||||
|
177
e2e/process-services-cloud/tasks-custom-filters.e2e.ts
Normal file
177
e2e/process-services-cloud/tasks-custom-filters.e2e.ts
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
/*!
|
||||||
|
* @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 resources = require('../util/resources');
|
||||||
|
|
||||||
|
import { LoginSSOPage } from '../pages/adf/loginSSOPage';
|
||||||
|
import { SettingsPage } from '../pages/adf/settingsPage';
|
||||||
|
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
||||||
|
import TasksListPage = require('../pages/adf/process_services/tasksListPage');
|
||||||
|
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/tasksCloudDemoPage';
|
||||||
|
import { AppListCloudComponent } from '../pages/adf/process-cloud/appListCloudComponent';
|
||||||
|
|
||||||
|
import AlfrescoApi = require('alfresco-js-api-node');
|
||||||
|
import { Tasks } from '../actions/APS-cloud/tasks';
|
||||||
|
import { ProcessDefinitions } from '../actions/APS-cloud/process-definitions';
|
||||||
|
import { ProcessInstances } from '../actions/APS-cloud/process-instances';
|
||||||
|
import { Query } from '../actions/APS-cloud/query';
|
||||||
|
import { Util } from '../util/util';
|
||||||
|
|
||||||
|
describe('Task filters cloud', () => {
|
||||||
|
|
||||||
|
describe('Filters', () => {
|
||||||
|
const settingsPage = new SettingsPage();
|
||||||
|
const loginSSOPage = new LoginSSOPage();
|
||||||
|
const navigationBarPage = new NavigationBarPage();
|
||||||
|
const appListCloudComponent = new AppListCloudComponent();
|
||||||
|
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||||
|
const tasksService: Tasks = new Tasks();
|
||||||
|
const processDefinitionService: ProcessDefinitions = new ProcessDefinitions();
|
||||||
|
const processInstancesService: ProcessInstances = new ProcessInstances();
|
||||||
|
const queryService: Query = new Query();
|
||||||
|
|
||||||
|
let silentLogin;
|
||||||
|
const createdTaskName = Util.generateRandomString(), completedTaskName = Util.generateRandomString(),
|
||||||
|
assignedTaskName = Util.generateRandomString(), deletedTaskName = Util.generateRandomString();
|
||||||
|
const simpleApp = 'simple-app';
|
||||||
|
const user = TestConfig.adf.adminEmail, password = TestConfig.adf.adminPassword;
|
||||||
|
let createdTask, assignedTask, completedTask, deletedTask;
|
||||||
|
let orderByNameAndPriority = ['cCreatedTask', 'dCreatedTask', 'eCreatedTask'];
|
||||||
|
let suspendedTasks, cancelledTasks;
|
||||||
|
let priority = 30, nrOfTasks = 3;
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
silentLogin = false;
|
||||||
|
settingsPage.setProviderBpmSso(TestConfig.adf.hostBPM, TestConfig.adf.hostSso, silentLogin);
|
||||||
|
loginSSOPage.clickOnSSOButton();
|
||||||
|
loginSSOPage.loginAPS(user, password);
|
||||||
|
|
||||||
|
await tasksService.init(user, password);
|
||||||
|
createdTask = await tasksService.createStandaloneTask(createdTaskName, simpleApp);
|
||||||
|
|
||||||
|
assignedTask = await tasksService.createStandaloneTask(assignedTaskName, simpleApp);
|
||||||
|
await tasksService.claimTask(assignedTask.entry.id, simpleApp);
|
||||||
|
completedTask = await tasksService.createAndCompleteTask(completedTaskName, simpleApp);
|
||||||
|
deletedTask = await tasksService.createStandaloneTask(deletedTaskName, simpleApp);
|
||||||
|
await tasksService.deleteTask(deletedTask.entry.id, simpleApp);
|
||||||
|
for ( let i = 0; i < nrOfTasks; i++ ) {
|
||||||
|
await tasksService.createStandaloneTask(orderByNameAndPriority[i], simpleApp, {priority: priority});
|
||||||
|
priority = priority + 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
await processDefinitionService.init(user, password);
|
||||||
|
let processDefinition = await processDefinitionService.getProcessDefinitions(simpleApp);
|
||||||
|
await processInstancesService.init(user, password);
|
||||||
|
let processInstance = await processInstancesService.createProcessInstance(processDefinition.list.entries[0].entry.key, simpleApp);
|
||||||
|
let secondProcessInstance = await processInstancesService.createProcessInstance(processDefinition.list.entries[0].entry.key, simpleApp);
|
||||||
|
await queryService.init(user, password);
|
||||||
|
suspendedTasks = await queryService.getProcessInstanceTasks(processInstance.entry.id, simpleApp);
|
||||||
|
cancelledTasks = await queryService.getProcessInstanceTasks(secondProcessInstance.entry.id, simpleApp);
|
||||||
|
await processInstancesService.suspendProcessInstance(processInstance.entry.id, simpleApp);
|
||||||
|
await processInstancesService.deleteProcessInstance(secondProcessInstance.entry.id, simpleApp);
|
||||||
|
await queryService.getProcessInstanceTasks(processInstance.entry.id, simpleApp);
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||||
|
appListCloudComponent.checkApsContainer();
|
||||||
|
await appListCloudComponent.goToApp(simpleApp);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C290045] Should display only tasks with Assigned state when Assigned is selected from state dropdown', () => {
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().setStateFilterDropDown('ASSIGNED');
|
||||||
|
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(assignedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(createdTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(completedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(deletedTaskName);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C290061] Should display only tasks with Completed state when Completed is selected from state dropdown', () => {
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().setStateFilterDropDown('COMPLETED');
|
||||||
|
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(completedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(assignedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(createdTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsNotDisplayed(deletedTaskName);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C290139] Should display only tasks with all states when All is selected from state dropdown', () => {
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().setAssignment(' ')
|
||||||
|
.setStateFilterDropDown('ALL');
|
||||||
|
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(deletedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(assignedTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(createdTaskName);
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkContentIsDisplayed(completedTaskName);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C290069] Should display tasks ordered by name when Name is selected from sort dropdown', () => {
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().setStateFilterDropDown('ASSIGNED')
|
||||||
|
.setSortFilterDropDown('NAME').setOrderFilterDropDown('ASC');
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().getAllRowsNameColumn().then( (list) => {
|
||||||
|
|
||||||
|
let initialList = list.slice(0);
|
||||||
|
list.sort();
|
||||||
|
expect(JSON.stringify(initialList) === JSON.stringify(list)).toEqual(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().getAllRowsNameColumn().then( (list) => {
|
||||||
|
let initialList = list.slice(0);
|
||||||
|
list.sort();
|
||||||
|
list.reverse();
|
||||||
|
expect(JSON.stringify(initialList) === JSON.stringify(list)).toEqual(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C290156] Should display tasks ordered by id when Id is selected from sort dropdown', () => {
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().setStateFilterDropDown('ASSIGNED')
|
||||||
|
.setSortFilterDropDown('ID').setOrderFilterDropDown('ASC');
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
|
||||||
|
|
||||||
|
tasksCloudDemoPage.getAllRowsByIdColumn().then( (list) => {
|
||||||
|
let initialList = list.slice(0);
|
||||||
|
list.sort(function (firstStr, secondStr) {
|
||||||
|
return firstStr.localeCompare(secondStr);
|
||||||
|
});
|
||||||
|
expect(JSON.stringify(initialList) === JSON.stringify(list)).toEqual(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
tasksCloudDemoPage.editTaskFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed();
|
||||||
|
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
|
||||||
|
tasksCloudDemoPage.getAllRowsByIdColumn().then( (list) => {
|
||||||
|
let initialList = list.slice(0);
|
||||||
|
list.sort(function (firstStr, secondStr) {
|
||||||
|
return firstStr.localeCompare(secondStr);
|
||||||
|
});
|
||||||
|
list.reverse();
|
||||||
|
expect(JSON.stringify(initialList) === JSON.stringify(list)).toEqual(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
Reference in New Issue
Block a user