mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
[ADF-4288] -Sort Process Custom filters (#4826)
* Update data-table-component.page.ts * new pr * fix error - sortOrder.toLowerCase is not a function * new pr * new process definition added * taking the development branch changes
This commit is contained in:
parent
626bb01bf7
commit
ab3bb9002f
57
e2e/process-services-cloud/editProcessFilter.config.ts
Normal file
57
e2e/process-services-cloud/editProcessFilter.config.ts
Normal file
@ -0,0 +1,57 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
export class EditProcessFilterConfiguration {
|
||||
|
||||
getConfiguration() {
|
||||
return {
|
||||
'filterProperties':
|
||||
[
|
||||
'appName',
|
||||
'status',
|
||||
'sort',
|
||||
'order',
|
||||
'processName',
|
||||
'lastModified',
|
||||
'processInstanceId',
|
||||
'initiator',
|
||||
'processDefinitionId',
|
||||
'processDefinitionKey',
|
||||
'startDate',
|
||||
'businessKey'
|
||||
],
|
||||
'sortProperties':
|
||||
[
|
||||
'id',
|
||||
'name',
|
||||
'status',
|
||||
'initiator',
|
||||
'processDefinitionId',
|
||||
'processDefinitionKey',
|
||||
'lastModified',
|
||||
'startDate',
|
||||
'businessKey'
|
||||
],
|
||||
'actions':
|
||||
[
|
||||
'save',
|
||||
'saveAs',
|
||||
'delete'
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
@ -17,7 +17,7 @@
|
||||
|
||||
import {
|
||||
TasksService, QueryService, ProcessDefinitionsService, ProcessInstancesService,
|
||||
LoginSSOPage, ApiService, SettingsPage, IdentityService, GroupIdentityService
|
||||
LoginSSOPage, ApiService, SettingsPage, IdentityService, GroupIdentityService, StringUtil
|
||||
} from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
||||
import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/processCloudDemoPage';
|
||||
@ -25,6 +25,8 @@ import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tas
|
||||
import { AppListCloudPage, LocalStorageUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||
import resources = require('../util/resources');
|
||||
import { browser } from 'protractor';
|
||||
import { ProcessListCloudConfiguration } from './processListCloud.config';
|
||||
import { EditProcessFilterConfiguration } from './editProcessFilter.config';
|
||||
|
||||
xdescribe('Process list cloud', () => {
|
||||
|
||||
@ -39,6 +41,10 @@ xdescribe('Process list cloud', () => {
|
||||
browser.params.config.oauth2.clientId,
|
||||
browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers
|
||||
);
|
||||
const processListCloudConfiguration = new ProcessListCloudConfiguration();
|
||||
const editProcessFilterConfiguration = new EditProcessFilterConfiguration();
|
||||
const processListCloudConfigFile = processListCloudConfiguration.getConfiguration();
|
||||
const editProcessFilterConfigFile = editProcessFilterConfiguration.getConfiguration();
|
||||
|
||||
let tasksService: TasksService;
|
||||
let identityService: IdentityService;
|
||||
@ -47,7 +53,7 @@ xdescribe('Process list cloud', () => {
|
||||
let processInstancesService: ProcessInstancesService;
|
||||
let queryService: QueryService;
|
||||
|
||||
let completedProcess, runningProcessInstance, switchProcessInstance, noOfApps, testUser, groupInfo;
|
||||
let completedProcess, runningProcessInstance, switchProcessInstance, noOfApps, testUser, groupInfo, anotherProcessInstance;
|
||||
const candidateBaseApp = resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.name;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
@ -63,14 +69,30 @@ xdescribe('Process list cloud', () => {
|
||||
|
||||
processDefinitionService = new ProcessDefinitionsService(apiService);
|
||||
const processDefinition = await processDefinitionService.getProcessDefinitionByName('candidateGroupProcess', candidateBaseApp);
|
||||
const anotherProcessDefinition = await processDefinitionService.getProcessDefinitionByName('anotherCandidateGroupProcess', candidateBaseApp);
|
||||
|
||||
processInstancesService = new ProcessInstancesService(apiService);
|
||||
await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
|
||||
|
||||
runningProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
|
||||
switchProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
|
||||
runningProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp, {
|
||||
'name': StringUtil.generateRandomString(),
|
||||
'businessKey': StringUtil.generateRandomString()
|
||||
});
|
||||
|
||||
completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
|
||||
anotherProcessInstance = await processInstancesService.createProcessInstance(anotherProcessDefinition.entry.key, candidateBaseApp, {
|
||||
'name': StringUtil.generateRandomString(),
|
||||
'businessKey': StringUtil.generateRandomString()
|
||||
});
|
||||
|
||||
switchProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp, {
|
||||
'name': StringUtil.generateRandomString(),
|
||||
'businessKey': StringUtil.generateRandomString()
|
||||
});
|
||||
|
||||
completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp, {
|
||||
'name': StringUtil.generateRandomString(),
|
||||
'businessKey': StringUtil.generateRandomString()
|
||||
});
|
||||
queryService = new QueryService(apiService);
|
||||
|
||||
const task = await queryService.getProcessInstanceTasks(completedProcess.entry.id, candidateBaseApp);
|
||||
@ -83,34 +105,15 @@ xdescribe('Process list cloud', () => {
|
||||
browser.params.config.oauth2.host,
|
||||
browser.params.config.identityHost);
|
||||
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify({
|
||||
'filterProperties': [
|
||||
'appName',
|
||||
'status',
|
||||
'processInstanceId',
|
||||
'order',
|
||||
'sort',
|
||||
'initiator',
|
||||
'order'
|
||||
],
|
||||
'sortProperties': [
|
||||
'id',
|
||||
'name',
|
||||
'status',
|
||||
'startDate'
|
||||
],
|
||||
'actions': [
|
||||
'save',
|
||||
'saveAs',
|
||||
'delete'
|
||||
]
|
||||
}));
|
||||
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile));
|
||||
await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(processListCloudConfigFile));
|
||||
done();
|
||||
}, 5 * 60 * 1000);
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
await identityService.deleteIdentityUser(testUser.idIdentityService);
|
||||
await processInstancesService.deleteProcessInstance(anotherProcessInstance.id, candidateBaseApp);
|
||||
done();
|
||||
});
|
||||
|
||||
@ -144,6 +147,69 @@ xdescribe('Process list cloud', () => {
|
||||
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by status when Status is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('Status').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Status')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Status')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by initiator when Initiator is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('Initiator').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Initiator')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Initiator')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by processdefinitionid date when ProcessDefinitionId is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('ProcessDefinitionId').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Process Definition Id')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Process Definition Id')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by processdefinitionkey date when ProcessDefinitionKey is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('ProcessDefinitionKey').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Process Definition Key')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Process Definition Key')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by last modified date when Last Modified is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('LastModified').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Last Modified')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Last Modified')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display processes ordered by business key date when BusinessKey is selected from sort dropdown', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL')
|
||||
.setSortFilterDropDown('BusinessKey').setOrderFilterDropDown('ASC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('ASC', 'Business Key')).toBe(true);
|
||||
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().setOrderFilterDropDown('DESC');
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().checkListIsSorted('DESC', 'Business Key')).toBe(true);
|
||||
});
|
||||
|
||||
it('[C305054] Should display the actions filters Save, SaveAs and Delete', async () => {
|
||||
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
||||
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
||||
expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes');
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader();
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsDisplayed().checkSaveAsButtonIsDisplayed()
|
||||
.checkDeleteButtonIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C297697] The value of the filter should be preserved when saving it', async () => {
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader()
|
||||
.setProcessInstanceId(completedProcess.entry.id);
|
||||
@ -194,6 +260,34 @@ xdescribe('Process list cloud', () => {
|
||||
BrowserActions.closeMenuAndDialogs();
|
||||
});
|
||||
|
||||
describe('Process List - Check Action Filters', () => {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify({
|
||||
'actions': [
|
||||
'save',
|
||||
'saveAs'
|
||||
]
|
||||
}));
|
||||
navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
appListCloudComponent.checkApsContainer();
|
||||
appListCloudComponent.goToApp(candidateBaseApp);
|
||||
tasksCloudDemoPage.taskListCloudComponent().checkTaskListIsLoaded();
|
||||
processCloudDemoPage.clickOnProcessFilters();
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C305054] Should display the actions filters Save and SaveAs, Delete button is not displayed', async () => {
|
||||
processCloudDemoPage.allProcessesFilter().clickProcessFilter();
|
||||
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
|
||||
expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes');
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader();
|
||||
processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsDisplayed().checkSaveAsButtonIsDisplayed()
|
||||
.checkDeleteButtonIsNotDisplayed();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -100,7 +100,7 @@ describe('Process list cloud', () => {
|
||||
|
||||
it('[C291997] Should be able to change the default columns', async () => {
|
||||
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().getNumberOfColumns()).toBe(12);
|
||||
expect(processCloudDemoPage.processListCloudComponent().getDataTable().getNumberOfColumns()).toBe(10);
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('id');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('name');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('status');
|
||||
@ -109,8 +109,6 @@ describe('Process list cloud', () => {
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('businessKey');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('initiator');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('lastModified');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('processName');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('processId');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('processDefinitionId');
|
||||
processCloudDemoPage.processListCloudComponent().getDataTable().checkColumnIsDisplayed('processDefinitionKey');
|
||||
|
||||
|
@ -70,28 +70,16 @@ export class ProcessListCloudConfiguration {
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.LAST_MODIFIED',
|
||||
'sortable': true
|
||||
},
|
||||
{
|
||||
'key': 'entry.processName',
|
||||
'type': 'text',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_NAME',
|
||||
'sortable': true
|
||||
},
|
||||
{
|
||||
'key': 'entry.processId',
|
||||
'type': 'text',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_ID',
|
||||
'sortable': true
|
||||
},
|
||||
{
|
||||
'key': 'entry.processDefinitionId',
|
||||
'type': 'text',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_DEFINITION_ID',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_DEF_ID',
|
||||
'sortable': true
|
||||
},
|
||||
{
|
||||
'key': 'entry.processDefinitionKey',
|
||||
'type': 'text',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_DEFINITION_KEY',
|
||||
'title': 'ADF_CLOUD_PROCESS_LIST.PROPERTIES.PROCESS_DEF_KEY',
|
||||
'sortable': true
|
||||
}
|
||||
]
|
||||
|
Binary file not shown.
@ -155,6 +155,11 @@ export class EditProcessFilterCloudComponentPage {
|
||||
return this;
|
||||
}
|
||||
|
||||
checkDeleteButtonIsNotDisplayed() {
|
||||
BrowserVisibility.waitUntilElementIsNotVisible(this.deleteButton);
|
||||
return this;
|
||||
}
|
||||
|
||||
checkSaveButtonIsEnabled() {
|
||||
BrowserVisibility.waitUntilElementIsVisible(this.saveButton);
|
||||
return this.saveButton.isEnabled();
|
||||
|
Loading…
x
Reference in New Issue
Block a user