mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
AAE-6348 E2E for multiselect dropdown (#7376)
* AAE-6348 E2E for multiselect dropdown
This commit is contained in:
@@ -49,10 +49,11 @@ describe('Form Field Component - Dropdown Widget', () => {
|
||||
|
||||
const dropdown = widget.dropdown();
|
||||
|
||||
let runningProcessInstance, testUser, groupInfo, tasklist, task;
|
||||
let runningProcessInstance, runningProcessInstanceMultiselect, testUser, groupInfo, tasklist, tasklistMulti, taskMulti, task;
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
beforeAll(async () => {
|
||||
const { processes } = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP;
|
||||
await apiService.loginWithProfile('identityAdmin');
|
||||
|
||||
testUser = await identityService.createIdentityUserWithRole( [identityService.ROLES.ACTIVITI_USER]);
|
||||
@@ -61,16 +62,20 @@ describe('Form Field Component - Dropdown Widget', () => {
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
await apiService.login(testUser.username, testUser.password);
|
||||
|
||||
const processDefinition = await processDefinitionService
|
||||
.getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes.dropdownOptionsProcess, simpleApp);
|
||||
const processDefinition = await processDefinitionService.getProcessDefinitionByName(processes.dropdownOptionsProcess, simpleApp);
|
||||
const processDefinitionMultiselect = await processDefinitionService.getProcessDefinitionByName(processes['multiselect-dropdown'], simpleApp);
|
||||
|
||||
await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
||||
|
||||
await processInstancesService.createProcessInstance(processDefinitionMultiselect.entry.key, simpleApp);
|
||||
runningProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
||||
runningProcessInstanceMultiselect = await processInstancesService.createProcessInstance(processDefinitionMultiselect.entry.key, simpleApp);
|
||||
|
||||
tasklist = await queryService.getProcessInstanceTasks(runningProcessInstance.entry.id, simpleApp);
|
||||
task = await tasklist.list.entries[0];
|
||||
tasklistMulti = await queryService.getProcessInstanceTasks(runningProcessInstanceMultiselect.entry.id, simpleApp);
|
||||
taskMulti = await tasklistMulti.list.entries[0];
|
||||
await tasksService.claimTask(task.entry.id, simpleApp);
|
||||
await tasksService.claimTask(taskMulti.entry.id, simpleApp);
|
||||
|
||||
await loginSSOPage.login(testUser.username, testUser.password);
|
||||
});
|
||||
@@ -86,6 +91,37 @@ describe('Form Field Component - Dropdown Widget', () => {
|
||||
await appListCloudComponent.goToApp(simpleApp);
|
||||
});
|
||||
|
||||
it('Should be able to finish task with mulitselect dropdown form field', async () => {
|
||||
const optionsToSelect = ['First', 'Third'];
|
||||
await taskFilter.clickTaskFilter('my-tasks');
|
||||
await taskList.getDataTable().waitTillContentLoaded();
|
||||
|
||||
await taskList.checkContentIsDisplayedByName(taskMulti.entry.name);
|
||||
await taskList.selectRow(taskMulti.entry.name);
|
||||
|
||||
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
|
||||
await dropdown.openDropdown('#DropdownMultiselect');
|
||||
await dropdown.selectMultipleOptions(optionsToSelect);
|
||||
await dropdown.closeDropdown();
|
||||
|
||||
const optionsSelected = [await dropdown.getSelectedOptionText('DropdownMultiselect')];
|
||||
|
||||
await taskFormCloudComponent.checkCompleteButtonIsDisplayed();
|
||||
await taskFormCloudComponent.clickCompleteButton();
|
||||
await taskFilter.clickTaskFilter('completed-tasks');
|
||||
await taskList.getDataTable().waitTillContentLoaded();
|
||||
|
||||
await taskList.checkContentIsDisplayedByName(taskMulti.entry.name);
|
||||
await taskList.selectRow(taskMulti.entry.name);
|
||||
|
||||
await taskFormCloudComponent.formFields().checkFormIsDisplayed();
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsVisible('DropdownMultiselect');
|
||||
|
||||
optionsSelected.push(await dropdown.getSelectedOptionText('DropdownMultiselect'));
|
||||
|
||||
await expect(optionsSelected.toString().replace(/\s+/g, '')).toEqual([optionsToSelect, optionsToSelect].toString());
|
||||
});
|
||||
|
||||
it('[C309878] Should be able to select a dropdown option, save and complete the task form', async () => {
|
||||
await taskFilter.clickTaskFilter('my-tasks');
|
||||
await taskList.getDataTable().waitTillContentLoaded();
|
||||
|
@@ -16,8 +16,9 @@
|
||||
*/
|
||||
|
||||
import { FormFields } from '../form-fields';
|
||||
import { by, element, $ } from 'protractor';
|
||||
import { by, element, $, protractor } from 'protractor';
|
||||
import { BrowserVisibility, BrowserActions } from '../../../utils/public-api';
|
||||
import { TestElement } from '../../../test-element';
|
||||
|
||||
export class DropdownWidgetPage {
|
||||
|
||||
@@ -33,6 +34,16 @@ export class DropdownWidgetPage {
|
||||
await BrowserActions.click(row);
|
||||
}
|
||||
|
||||
async selectMultipleOptions(options: string[]): Promise<void> {
|
||||
for (const option of options) {
|
||||
await TestElement.byText('mat-option span', option).click();
|
||||
}
|
||||
}
|
||||
|
||||
async closeDropdown(): Promise<void> {
|
||||
await $('body').sendKeys(protractor.Key.ESCAPE);
|
||||
}
|
||||
|
||||
async openDropdown(locator: string = '#dropdown'): Promise<void> {
|
||||
await this.checkDropdownIsDisplayed(locator);
|
||||
const dropdown = locator ? $(`${locator}`) : $(`#dropdown`);
|
||||
|
@@ -128,6 +128,7 @@ export const ACTIVITI_CLOUD_APPS = {
|
||||
multiinstancedmnsequence: 'multiinstance-dmnsequence',
|
||||
multiinstancemanualtask: 'multiinstance-manualtask',
|
||||
multiinstancesubprocess: 'multiinstance-subprocess',
|
||||
'multiselect-dropdown': 'multiselect-dropdown',
|
||||
calledprocess: 'calledprocess',
|
||||
booleanvisibilityprocess: 'booleanvisibilityprocess',
|
||||
numbervisibilityprocess: 'numbervisibilityprocess',
|
||||
|
Reference in New Issue
Block a user