From a5a82eb649f2bdb6d18534f577eba931d9075abb Mon Sep 17 00:00:00 2001 From: davidcanonieto Date: Fri, 17 Apr 2020 16:27:07 +0100 Subject: [PATCH] [ADF-5116] Make ADF's pipeline GREEN again (#5620) * [ADF-5116] Make ADF's pipeline GREEN again * Fix more e2e tests * Exclude test * Fix last e2e test * Fix C305008 --- .../task-visibility-condition.e2e.ts | 7 ++- .../process-filter-results.e2e.ts | 58 +++++++++++++------ .../process-filters-cloud.e2e.ts | 35 +++++++++-- .../process-header-cloud.e2e.ts | 11 +++- .../process-list-cloud-action-menu.e2e.ts | 30 ++++++++-- .../process-list-selection-cloud.e2e.ts | 26 ++++++--- .../start-process-cloud.e2e.ts | 2 + .../start-task-form-cloud.e2e.ts | 22 ++++++- e2e/protractor.excludes.json | 3 +- ...dit-process-filter-cloud-component.page.ts | 4 ++ 10 files changed, 158 insertions(+), 40 deletions(-) diff --git a/e2e/process-services-cloud/form-field/task-visibility-condition.e2e.ts b/e2e/process-services-cloud/form-field/task-visibility-condition.e2e.ts index e45af1f69d..83b6681393 100644 --- a/e2e/process-services-cloud/form-field/task-visibility-condition.e2e.ts +++ b/e2e/process-services-cloud/form-field/task-visibility-condition.e2e.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { LoginSSOPage, AppListCloudPage, IdentityService, GroupIdentityService, ApiService, StringUtil, StartTasksCloudPage, TaskFormCloudComponent } from '@alfresco/adf-testing'; +import { LoginSSOPage, AppListCloudPage, IdentityService, GroupIdentityService, ApiService, StringUtil, StartTasksCloudPage, TaskFormCloudComponent, EditProcessFilterCloudComponentPage } from '@alfresco/adf-testing'; import { browser, by } from 'protractor'; import { NavigationBarPage } from '../../pages/adf/navigation-bar.page'; @@ -34,6 +34,7 @@ describe('Task cloud visibility', async () => { const startProcessPage = new StartProcessPage(); const processCloudDemoPage = new ProcessCloudDemoPage(); const processDetailsCloudDemoPage = new ProcessDetailsCloudDemoPage(); + const editProcessFilterCloudComponentPage = new EditProcessFilterCloudComponentPage(); const loginSSOPage = new LoginSSOPage(); const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name; @@ -98,6 +99,8 @@ describe('Task cloud visibility', async () => { await startProcessPage.enterProcessName(processName); await startProcessPage.clickStartProcessButton(); + await editProcessFilterCloudComponentPage.openFilter(); + await editProcessFilterCloudComponentPage.setProcessName(processName); await processDetailsCloudDemoPage.selectProcessTaskByName(processName); await tasksCloudDemoPage.taskListCloudComponent().selectRow('number_visibility_task'); await taskFormCloudComponent.clickClaimButton(); @@ -127,6 +130,8 @@ describe('Task cloud visibility', async () => { await startProcessPage.enterProcessName(processName); await startProcessPage.clickStartProcessButton(); + await editProcessFilterCloudComponentPage.openFilter(); + await editProcessFilterCloudComponentPage.setProcessName(processName); await processDetailsCloudDemoPage.selectProcessTaskByName(processName); await tasksCloudDemoPage.taskListCloudComponent().selectRow('boolean_visibility_task'); await taskFormCloudComponent.clickClaimButton(); diff --git a/e2e/process-services-cloud/process-filter-results.e2e.ts b/e2e/process-services-cloud/process-filter-results.e2e.ts index cdea83ea2c..23b4ffbc6a 100644 --- a/e2e/process-services-cloud/process-filter-results.e2e.ts +++ b/e2e/process-services-cloud/process-filter-results.e2e.ts @@ -187,12 +187,11 @@ describe('Process filters cloud', () => { it('[C311315] Should be able to filter by process definition id', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionId', processDefinition.entry.id); - - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionId', anotherProcessDefinition.entry.id); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); }); @@ -200,11 +199,11 @@ describe('Process filters cloud', () => { it('[C311316] Should be able to filter by process definition key', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionKey', processDefinition.entry.key); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionKey', anotherProcessDefinition.entry.key); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); }); @@ -227,11 +226,11 @@ describe('Process filters cloud', () => { it('[C311321] Should be able to filter by process name', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); - await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processName', runningProcessInstance.entry.name); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); - await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processName', anotherProcessInstance.entry.name); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); @@ -240,83 +239,106 @@ describe('Process filters cloud', () => { it('[C306892] Should be able to filter by process status - Running', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('RUNNING'); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(suspendProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(suspendProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(completedProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(completedProcess.entry.name); }); it('[C306892] Should be able to filter by process status - Completed', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('COMPLETED'); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(completedProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(completedProcess.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(suspendProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(suspendProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(anotherProcessInstance.entry.name); }); it('[C306892] Should be able to filter by process status - Suspended', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('SUSPENDED'); - - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(suspendProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(suspendProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(anotherProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(completedProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(completedProcess.entry.name); }); it('[C306892] Should be able to filter by process status - All', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setStatusFilterDropDown('ALL'); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(anotherProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(suspendProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(suspendProcessInstance.entry.name); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(completedProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(completedProcess.entry.name); }); it('[C311318] Should be able to filter by lastModifiedFrom - displays record when date = currentDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedFrom', currentDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); }); it('[C311318] Should be able to filter by lastModifiedFrom - displays record when date = beforeDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedFrom', beforeDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); }); it('[C311318] Should be able to filter by lastModifiedFrom - does not display record when date = afterDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedFrom', afterDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); }); it('[C311319] Should be able to filter by lastModifiedTo - displays record when date = currentDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedTo', currentDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); }); it('[C311319] Should be able to filter by lastModifiedTo - does not display record when date = beforeDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedTo', beforeDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name); }); it('[C311319] Should be able to filter by lastModifiedTo - displays record when date = afterDate', async () => { await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedTo', afterDate); - await processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcessInstance.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name); }); diff --git a/e2e/process-services-cloud/process-filters-cloud.e2e.ts b/e2e/process-services-cloud/process-filters-cloud.e2e.ts index 4e83636bed..72f30f61d1 100644 --- a/e2e/process-services-cloud/process-filters-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-filters-cloud.e2e.ts @@ -15,7 +15,19 @@ * limitations under the License. */ -import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessInstancesService, QueryService, TasksService } from '@alfresco/adf-testing'; +import { + ApiService, + AppListCloudPage, + GroupIdentityService, + IdentityService, + LoginSSOPage, + StringUtil, + ProcessDefinitionsService, + ProcessInstancesService, + QueryService, + TasksService, + EditProcessFilterCloudComponentPage +} from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/process-cloud-demo.page'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasks-cloud-demo.page'; @@ -29,6 +41,7 @@ describe('Process filters cloud', () => { const appListCloudComponent = new AppListCloudPage(); const processCloudDemoPage = new ProcessCloudDemoPage(); const tasksCloudDemoPage = new TasksCloudDemoPage(); + const editProcessFilterCloudComponentPage = new EditProcessFilterCloudComponentPage(); const apiService = new ApiService( browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers @@ -59,9 +72,15 @@ describe('Process filters cloud', () => { .getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.processes.candidateGroupProcess, candidateBaseApp); processInstancesService = new ProcessInstancesService(apiService); - runningProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp); + runningProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp, { + 'name': StringUtil.generateRandomString(), + 'businessKey': StringUtil.generateRandomString() + }); - completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp); + completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp, { + 'name': StringUtil.generateRandomString(), + 'businessKey': StringUtil.generateRandomString() + }); queryService = new QueryService(apiService); await browser.sleep(4000); // eventual consistency query @@ -80,7 +99,7 @@ describe('Process filters cloud', () => { }); - beforeEach(async() => { + beforeEach(async () => { await navigationBarPage.navigateToProcessServicesCloudPage(); await appListCloudComponent.checkApsContainer(); await appListCloudComponent.goToApp(candidateBaseApp); @@ -97,28 +116,36 @@ describe('Process filters cloud', () => { it('[C290043] Should display process in Running Processes List when process is started', async () => { await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter(); + await editProcessFilterCloudComponentPage.openFilter(); + await editProcessFilterCloudComponentPage.setProcessName(runningProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(runningProcess.entry.id); await processCloudDemoPage.processFilterCloudComponent.clickCompletedProcessesFilter(); + await editProcessFilterCloudComponentPage.setProcessName(runningProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Completed Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedById(runningProcess.entry.id); await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter(); + await editProcessFilterCloudComponentPage.setProcessName(runningProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(runningProcess.entry.id); }); it('[C290044] Should display process in Completed Processes List when process is completed', async () => { await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter(); + await editProcessFilterCloudComponentPage.openFilter(); + await editProcessFilterCloudComponentPage.setProcessName(completedProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedById(completedProcess.entry.id); await processCloudDemoPage.processFilterCloudComponent.clickCompletedProcessesFilter(); + await editProcessFilterCloudComponentPage.setProcessName(completedProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Completed Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(completedProcess.entry.id); await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter(); + await editProcessFilterCloudComponentPage.setProcessName(completedProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(completedProcess.entry.id); }); diff --git a/e2e/process-services-cloud/process-header-cloud.e2e.ts b/e2e/process-services-cloud/process-header-cloud.e2e.ts index 3220683c7a..a96a49c7bc 100644 --- a/e2e/process-services-cloud/process-header-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-header-cloud.e2e.ts @@ -15,13 +15,14 @@ * limitations under the License. */ -import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessHeaderCloudPage, ProcessInstancesService, QueryService, StringUtil } from '@alfresco/adf-testing'; +import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessHeaderCloudPage, ProcessInstancesService, QueryService, StringUtil, LocalStorageUtil } from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/process-cloud-demo.page'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasks-cloud-demo.page'; import { NavigationBarPage } from '../pages/adf/navigation-bar.page'; import CONSTANTS = require('../util/constants'); import moment = require('moment'); +import { EditProcessFilterConfiguration } from './config/edit-process-filter.config'; describe('Process Header cloud component', () => { @@ -38,6 +39,8 @@ describe('Process Header cloud component', () => { const appListCloudComponent = new AppListCloudPage(); const tasksCloudDemoPage = new TasksCloudDemoPage(); const processCloudDemoPage = new ProcessCloudDemoPage(); + const editProcessFilterConfiguration = new EditProcessFilterConfiguration(); + const editProcessFilterConfigFile = editProcessFilterConfiguration.getConfiguration(); const apiService = new ApiService( browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers @@ -87,6 +90,7 @@ describe('Process Header cloud component', () => { completedCreatedDate = moment(childCompleteProcess.entry.startDate).format(formatDate); await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile)); }); afterAll(async() => { @@ -104,9 +108,10 @@ describe('Process Header cloud component', () => { await appListCloudComponent.goToApp(simpleApp); await tasksCloudDemoPage.taskListCloudComponent().checkTaskListIsLoaded(); await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters(); - await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(runningProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkProcessListIsLoaded(); @@ -128,6 +133,8 @@ describe('Process Header cloud component', () => { await processCloudDemoPage.processFilterCloudComponent.clickCompletedProcessesFilter(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Completed Processes'); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(childCompleteProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkProcessListIsLoaded(); diff --git a/e2e/process-services-cloud/process-list-cloud-action-menu.e2e.ts b/e2e/process-services-cloud/process-list-cloud-action-menu.e2e.ts index c8f2f47a37..6c42e986af 100644 --- a/e2e/process-services-cloud/process-list-cloud-action-menu.e2e.ts +++ b/e2e/process-services-cloud/process-list-cloud-action-menu.e2e.ts @@ -15,7 +15,16 @@ * limitations under the License. */ -import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessInstancesService } from '@alfresco/adf-testing'; +import { + ApiService, + AppListCloudPage, + GroupIdentityService, + IdentityService, + LoginSSOPage, + ProcessDefinitionsService, + ProcessInstancesService, + StringUtil +} from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/process-cloud-demo.page'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasks-cloud-demo.page'; @@ -54,13 +63,19 @@ describe('Process list cloud', () => { .getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes.simpleProcess, simpleApp); processInstancesService = new ProcessInstancesService(apiService); - editProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp); - deleteProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp); + editProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp, { + 'name': StringUtil.generateRandomString(), + 'businessKey': StringUtil.generateRandomString() + }); + deleteProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp, { + 'name': StringUtil.generateRandomString(), + 'businessKey': StringUtil.generateRandomString() + }); await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); }); - afterAll(async() => { + afterAll(async () => { await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); await identityService.deleteIdentityUser(testUser.idIdentityService); @@ -89,6 +104,8 @@ describe('Process list cloud', () => { }); it('[C315236] Should be able to see and execute custom action menu', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(editProcess.entry.name); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); await processCloudDemoPage.processListCloudComponent().checkProcessListIsLoaded(); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(editProcess.entry.id); @@ -97,11 +114,14 @@ describe('Process list cloud', () => { await expect(await processCloudDemoPage.processListCloudComponent().getNumberOfOptions()).toBe(3); await processCloudDemoPage.processListCloudComponent().clickOnCustomActionMenu('edit'); await processCloudDemoPage.checkActionExecuted(editProcess.entry.id, 'edit'); + + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(deleteProcess.entry.name); + await browser.sleep(1000); await processCloudDemoPage.processListCloudComponent().rightClickOnRow(deleteProcess.entry.id); await expect(await processCloudDemoPage.processListCloudComponent().isCustomActionEnabled('disabledaction')).toBe(false); await expect(await processCloudDemoPage.processListCloudComponent().getNumberOfOptions()).toBe(3); await processCloudDemoPage.processListCloudComponent().clickContextMenuActionNamed('delete'); await processCloudDemoPage.checkActionExecuted(deleteProcess.entry.id, 'delete'); }); - }); + }); }); diff --git a/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts b/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts index fdb7357112..beb91af853 100644 --- a/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts @@ -15,12 +15,13 @@ * limitations under the License. */ -import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessInstancesService } from '@alfresco/adf-testing'; +import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage, ProcessDefinitionsService, ProcessInstancesService, LocalStorageUtil } from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/process-cloud-demo.page'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasks-cloud-demo.page'; import { NavigationBarPage } from '../pages/adf/navigation-bar.page'; import { ProcessDetailsCloudDemoPage } from '../pages/adf/demo-shell/process-services-cloud/process-details-cloud-demo.page'; +import { EditProcessFilterConfiguration } from './config/edit-process-filter.config'; describe('Process list cloud', () => { @@ -42,6 +43,8 @@ describe('Process list cloud', () => { const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM'); const noOfProcesses = 3; const processInstances = []; + const editProcessFilterConfiguration = new EditProcessFilterConfiguration(); + const editProcessFilterConfigFile = editProcessFilterConfiguration.getConfiguration(); beforeAll(async () => { @@ -64,7 +67,7 @@ describe('Process list cloud', () => { } await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); - + await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile)); }); afterAll(async() => { @@ -92,7 +95,8 @@ describe('Process list cloud', () => { await tasksCloudDemoPage.clickAppButton(); await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); - + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().getDataTable().checkNoRowIsSelected(); }); @@ -104,6 +108,8 @@ describe('Process list cloud', () => { await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkRowIsSelectedById(processInstances[0]); await expect(await processCloudDemoPage.processListCloudComponent().getDataTable().getNumberOfSelectedRows()).toEqual(1); @@ -118,7 +124,8 @@ describe('Process list cloud', () => { await tasksCloudDemoPage.clickAppButton(); await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); - + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().selectRowById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkRowIsSelectedById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().selectRowWithKeyboard(processInstances[1]); @@ -134,7 +141,8 @@ describe('Process list cloud', () => { await tasksCloudDemoPage.clickAppButton(); await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); - + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().checkCheckboxById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkRowIsCheckedById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkCheckboxById(processInstances[1]); @@ -150,8 +158,10 @@ describe('Process list cloud', () => { await tasksCloudDemoPage.enableMultiSelection(); await tasksCloudDemoPage.clickAppButton(); await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); - + await browser.sleep(1000); await processCloudDemoPage.processListCloudComponent().getDataTable().checkAllRowsButtonIsDisplayed(); await processCloudDemoPage.processListCloudComponent().getDataTable().checkAllRows(); await processCloudDemoPage.processListCloudComponent().checkRowIsCheckedById(processInstances[0]); @@ -160,7 +170,6 @@ describe('Process list cloud', () => { await processCloudDemoPage.processListCloudComponent().getDataTable().checkAllRowsButtonIsDisplayed(); await processCloudDemoPage.processListCloudComponent().getDataTable().uncheckAllRows(); - await processCloudDemoPage.processListCloudComponent().checkRowIsNotCheckedById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkRowIsNotCheckedById(processInstances[1]); await processCloudDemoPage.processListCloudComponent().checkRowIsNotCheckedById(processInstances[2]); @@ -173,7 +182,8 @@ describe('Process list cloud', () => { await tasksCloudDemoPage.clickAppButton(); await processCloudDemoPage.processFilterCloudComponent.isProcessFiltersListVisible(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes'); - + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('initiator', testUser.username); await processCloudDemoPage.processListCloudComponent().checkCheckboxById(processInstances[0]); await processCloudDemoPage.processListCloudComponent().checkRowIsCheckedById(processInstances[0]); await processDetailsCloudDemoPage.checkListedSelectedProcessInstance(processInstances[0]); diff --git a/e2e/process-services-cloud/start-process-cloud.e2e.ts b/e2e/process-services-cloud/start-process-cloud.e2e.ts index 8a531b3ac4..6af594abf8 100644 --- a/e2e/process-services-cloud/start-process-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-process-cloud.e2e.ts @@ -107,6 +107,8 @@ describe('Start Process', () => { await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters(); await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(processName); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(processName); }); diff --git a/e2e/process-services-cloud/start-task-form-cloud.e2e.ts b/e2e/process-services-cloud/start-task-form-cloud.e2e.ts index 35f35370cd..910681629a 100644 --- a/e2e/process-services-cloud/start-task-form-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-task-form-cloud.e2e.ts @@ -280,7 +280,7 @@ describe('Start Task Form', () => { await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter(); await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('Running Processes'); await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); - await processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processName', startEventFormProcess); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(startEventFormProcess); await browser.sleep(1000); @@ -305,6 +305,8 @@ describe('Start Task Form', () => { await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters(); await processCloudDemoPage.processFilterCloudComponent.clickCompletedProcessesFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(startEventFormProcess); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedById(processId); }); @@ -323,6 +325,8 @@ describe('Start Task Form', () => { }); it('[C310358] Should be able to attach a file to a form from local', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadLocalFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadLocalFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadLocalFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -338,6 +342,8 @@ describe('Start Task Form', () => { }); it('[C311285] Should be able to attach a file to a form from acs repository', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadContentFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -362,6 +368,8 @@ describe('Start Task Form', () => { }); it('[C311287] Content node selector default location when attaching a file to a form from acs repository', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadDefaultFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadDefaultFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadDefaultFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -386,6 +394,8 @@ describe('Start Task Form', () => { }); it('[C311288] No file should be attached when canceling the content node selector', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(cancelUploadFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(cancelUploadFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', cancelUploadFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -408,6 +418,8 @@ describe('Start Task Form', () => { }); it('[C311289] Should be able to attach single file', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadContentFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -429,6 +441,8 @@ describe('Start Task Form', () => { }); it('[C311292] Attached file is not displayed anymore after release if the form is not saved', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadContentFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -454,6 +468,8 @@ describe('Start Task Form', () => { }); it('[C311293] Attached file is displayed after release if the form was saved', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(uploadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', uploadContentFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -478,6 +494,8 @@ describe('Start Task Form', () => { }); it('[C311295] Attached file is displayed after complete', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(completeUploadFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(completeUploadFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', completeUploadFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); @@ -509,6 +527,8 @@ describe('Start Task Form', () => { }); it('[C315292] Should be able to download attached file from acs repository', async () => { + await processCloudDemoPage.editProcessFilterCloudComponent().openFilter(); + await processCloudDemoPage.editProcessFilterCloudComponent().setProcessName(downloadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(downloadContentFileProcess.entry.name); await processCloudDemoPage.processListCloudComponent().getDataTable().selectRow('Name', downloadContentFileProcess.entry.name); await processDetailsCloudDemoPage.checkTaskIsDisplayed('UploadFileTask'); diff --git a/e2e/protractor.excludes.json b/e2e/protractor.excludes.json index e665aa50d0..5cfab5ed2d 100644 --- a/e2e/protractor.excludes.json +++ b/e2e/protractor.excludes.json @@ -1,3 +1,4 @@ { - "C260249" : "REPO-4772 ACS 6.2" + "C260249" : "REPO-4772 ACS 6.2", + "C305010": "Problem start date" } diff --git a/lib/testing/src/lib/process-services-cloud/pages/edit-process-filter-cloud-component.page.ts b/lib/testing/src/lib/process-services-cloud/pages/edit-process-filter-cloud-component.page.ts index 9c4e2d595d..06321311f8 100644 --- a/lib/testing/src/lib/process-services-cloud/pages/edit-process-filter-cloud-component.page.ts +++ b/lib/testing/src/lib/process-services-cloud/pages/edit-process-filter-cloud-component.page.ts @@ -119,6 +119,10 @@ export class EditProcessFilterCloudComponentPage { await this.setProperty('processInstanceId', option); } + async setProcessName(option): Promise { + await this.setProperty('processName', option); + } + async getProcessInstanceId(): Promise { return this.getProperty('processInstanceId'); }