diff --git a/e2e/pages/adf/process-services/processListPage.ts b/e2e/pages/adf/process-services/processListPage.ts index 200447e308..bb87a9dc79 100644 --- a/e2e/pages/adf/process-services/processListPage.ts +++ b/e2e/pages/adf/process-services/processListPage.ts @@ -20,7 +20,7 @@ import { element, by, ElementFinder } from 'protractor'; export class ProcessListPage { - processListTitle: ElementFinder = element.all(by.css("div[class='adf-empty-content__title']")).first(); + processListTitle: ElementFinder = element(by.css('div[class="adf-empty-content__title"]')); processInstanceList: ElementFinder = element(by.css('adf-process-instance-list')); getDisplayedProcessListTitle(): Promise { diff --git a/e2e/pages/adf/process-services/processServiceTabBarPage.ts b/e2e/pages/adf/process-services/processServiceTabBarPage.ts index cd45010484..c6a1e04f63 100644 --- a/e2e/pages/adf/process-services/processServiceTabBarPage.ts +++ b/e2e/pages/adf/process-services/processServiceTabBarPage.ts @@ -28,17 +28,17 @@ export class ProcessServiceTabBarPage { async clickTasksButton(): Promise { await BrowserActions.click(this.tasksButton); - await browser.sleep(300); + await browser.sleep(500); } async clickProcessButton(): Promise { await BrowserActions.click(this.processButton); - await browser.sleep(300); + await browser.sleep(500); } async clickSettingsButton(): Promise { await BrowserActions.click(this.settingsButton); - await browser.sleep(300); + await browser.sleep(500); } async clickReportsButton(): Promise { diff --git a/e2e/process-services-cloud/task-form-cloud-component.e2e.ts b/e2e/process-services-cloud/task-form-cloud-component.e2e.ts index 839ea6aef4..982816d385 100644 --- a/e2e/process-services-cloud/task-form-cloud-component.e2e.ts +++ b/e2e/process-services-cloud/task-form-cloud-component.e2e.ts @@ -31,6 +31,7 @@ import { } from '@alfresco/adf-testing'; import { NavigationBarPage } from '../pages/adf/navigationBarPage'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage'; +import { FormCloudService } from '../../lib/testing/src/lib/form-cloud/actions/form-cloud.service'; describe('Task form cloud component', () => { @@ -48,7 +49,6 @@ describe('Task form cloud component', () => { let processDefinitionService: ProcessDefinitionsService; let processInstancesService: ProcessInstancesService; let identityService: IdentityService; - let groupIdentityService: GroupIdentityService; let completedTask, createdTask, assigneeTask, toBeCompletedTask, formValidationsTask, testUser, formTaskId; const candidateBaseApp = browser.params.resources.ACTIVITI_CLOUD_APPS.CANDIDATE_BASE_APP.name; @@ -86,7 +86,8 @@ describe('Task form cloud component', () => { await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); identityService = new IdentityService(apiService); - groupIdentityService = new GroupIdentityService(apiService); + const groupIdentityService = new GroupIdentityService(apiService); + const formCloudService = new FormCloudService(apiService); testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]); @@ -101,15 +102,19 @@ describe('Task form cloud component', () => { assigneeTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp); await tasksService.claimTask(assigneeTask.entry.id, candidateBaseApp); + const tabVisibilityFieldsId = await formCloudService.getIdByFormName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityFields.name); + + const tabVisibilityVarsId = await formCloudService.getIdByFormName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityVars.name); + for (let i = 0; i < 3; i++) { visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), - simpleApp, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityFields.id); + simpleApp, tabVisibilityFieldsId); await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp); } for (let i = 3; i < 6; i++) { visibilityConditionTasks[i] = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), - simpleApp, browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.forms.tabVisibilityVars.id); + simpleApp, tabVisibilityVarsId); await tasksService.claimTask(visibilityConditionTasks[i].entry.id, simpleApp); } @@ -346,7 +351,6 @@ describe('Task form cloud component', () => { await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldValue); await widget.textWidget().isWidgetVisible(widgets.textOneId); await widget.textWidget().isWidgetNotVisible(widgets.textTwoId); - await widget.textWidget().setValue(widgets.textOneId, value.displayTab); await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields); await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldValue); @@ -402,7 +406,9 @@ describe('Task form cloud component', () => { await expect(await tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name); + await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[2].entry.name); + await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed(); await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields); @@ -419,14 +425,16 @@ describe('Task form cloud component', () => { await widget.tab().clickTabByLabel(tab.tabWithFields); await widget.textWidget().setValue(widgets.textOneId, value.notDisplayTab); await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar); - await taskFormCloudComponent.clickCompleteButton(); + await expect(await tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); + await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[2].entry.name); await tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name); await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[2].entry.name); + await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields); await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar); }); diff --git a/e2e/process-services/empty-process-list-component.e2e.ts b/e2e/process-services/empty-process-list-component.e2e.ts index 505b185c5a..6a9de93c77 100644 --- a/e2e/process-services/empty-process-list-component.e2e.ts +++ b/e2e/process-services/empty-process-list-component.e2e.ts @@ -88,7 +88,9 @@ describe('Empty Process List Test', () => { await processFiltersPage.clickNewProcessDropdown(); await startProcessPage.selectFromProcessDropdown(appB.processName); await startProcessPage.clickStartProcessButton(); + await expect(await processFiltersPage.numberOfProcessRows()).toEqual(1); + await processDetailsPage.checkProcessDetailsCard(); }); diff --git a/lib/testing/src/lib/core/utils/browser-actions.ts b/lib/testing/src/lib/core/utils/browser-actions.ts index e6b3fd42a1..be7f499965 100644 --- a/lib/testing/src/lib/core/utils/browser-actions.ts +++ b/lib/testing/src/lib/core/utils/browser-actions.ts @@ -17,6 +17,7 @@ import { browser, by, element, ElementArrayFinder, ElementFinder, protractor } from 'protractor'; import { BrowserVisibility } from '../utils/browser-visibility'; +import { Logger } from './logger'; export class BrowserActions { @@ -30,7 +31,8 @@ export class BrowserActions { await browser.executeScript(`arguments[0].scrollIntoView();`, elementFinder); await browser.executeScript(`arguments[0].click();`, elementFinder); } catch (jsErr) { - throw jsErr; + Logger.error(`click error element ${elementFinder}`); + throw jsErr; } } } diff --git a/lib/testing/src/lib/form-cloud/actions/form-cloud.service.ts b/lib/testing/src/lib/form-cloud/actions/form-cloud.service.ts index fd83d40877..2b31c46548 100644 --- a/lib/testing/src/lib/form-cloud/actions/form-cloud.service.ts +++ b/lib/testing/src/lib/form-cloud/actions/form-cloud.service.ts @@ -45,4 +45,35 @@ export class FormCloudService { } + async getForms(appName: string): Promise { + try { + const path = '/' + appName + '/form/v1/forms'; + const method = 'GET'; + + const queryParams = {}, postBody = {}; + + return this.api.performBpmOperation(path, method, queryParams, postBody); + + } catch (error) { + Logger.error('Get forms error ', error.message); + } + + return []; + } + + async getIdByFormName(appName: string, formName: string): Promise { + + const forms = await this.getForms(appName); + + const formEntry = forms.find((currentForm) => { + return currentForm.formRepresentation.name === formName; + }); + + if (formEntry.formRepresentation) { + return formEntry.formRepresentation.id; + } + + return null; + } + } diff --git a/lib/testing/src/lib/process-services-cloud/resources/resources.ts b/lib/testing/src/lib/process-services-cloud/resources/resources.ts index bfe79fba21..00d584a80a 100644 --- a/lib/testing/src/lib/process-services-cloud/resources/resources.ts +++ b/lib/testing/src/lib/process-services-cloud/resources/resources.ts @@ -64,44 +64,34 @@ export const ACTIVITI_CLOUD_APPS: any = { }, forms: { tabVisibilityFields: { - name: 'tabvisibilitywithfields', - id: 'form-26b01063-4fb0-455f-b3ba-90172e013678' + name: 'tabvisibilitywithfields' }, tabVisibilityVars: { - name: 'tabvisibilitywithvars', - id: 'form-7bf363d2-83c9-4b00-853e-373d0d59963c' + name: 'tabvisibilitywithvars' }, usertaskform: { - name: 'usertaskform', - id: 'form-056ba4aa-90c2-48eb-ba39-7013d732503b' + name: 'usertaskform' }, dropdownform: { - name: 'dropdownform', - id: 'form-5688156c-150c-43bc-83cb-617fd045202a' + name: 'dropdownform' }, formVisibility: { - name: 'form-visibility', - id: 'form-30418ed3-2beb-464f-ad51-4ca5da02f6d8' + name: 'form-visibility' }, multilingualform: { - name: 'multilingualform', - id: 'form-fb8f1628-82d9-4e0e-b032-bf02598e7d24' + name: 'multilingualform' }, inputform: { - name: 'inputform', - id: 'form-d69fd470-b67a-4e7c-bb70-8979fc10374f' + name: 'inputform' }, outputform: { - name: 'outputform', - id: 'form-eeb2174f-b25a-4386-bf73-bda4de195eee' + name: 'outputform' }, exclusiveconditionform: { - name: 'exclusive-condition-form', - id: 'form-03f56f41-c9a7-430a-a713-fc37bab070c1' + name: 'exclusive-condition-form' }, uploadlocalfileform: { - name: 'upload-localfile-form', - id: 'form-f4f02bc1-9cb6-43d6-9328-385db73e2762' + name: 'upload-localfile-form' } }, security: [