mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-3596]Create automated tests for start process (#3834)
* Add automated tests for Start a process * Deleted a shadow variable. * Fixing a test * Modified the testrail ID of two tests. * Resolve lint errors.
This commit is contained in:
committed by
Eugenio Romano
parent
711d51dd1d
commit
80e0a966ad
@@ -26,10 +26,21 @@ var StartProcessPage = function () {
|
||||
var formStartProcessButton = element(by.css('button[data-automation-id="adf-form-start process"]'));
|
||||
var startProcessButton = element(by.css("button[data-automation-id='btn-start']"));
|
||||
var noProcess = element(by.id('no-process-message'));
|
||||
var processDefinition = element(by.css("input[id='processDefinitionName']"));
|
||||
var processDefinitionOptionsPanel = element(by.css("div[class*='processDefinitionOptions']"));
|
||||
|
||||
this.checkNoProcessMessage = function () {
|
||||
Util.waitUntilElementIsVisible(noProcess);
|
||||
}
|
||||
};
|
||||
|
||||
this.pressDownArrowAndEnter = function () {
|
||||
processDefinition.sendKeys(protractor.Key.ARROW_DOWN);
|
||||
return browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||
};
|
||||
|
||||
this.checkNoProcessDefinitionOptionIsDisplayed = function () {
|
||||
Util.waitUntilElementIsNotOnPage(processDefinitionOptionsPanel);
|
||||
};
|
||||
|
||||
this.getDefaultName = function () {
|
||||
Util.waitUntilElementIsVisible(defaultProcessName);
|
||||
@@ -52,9 +63,30 @@ var StartProcessPage = function () {
|
||||
};
|
||||
|
||||
this.selectFromProcessDropdown = function (name) {
|
||||
this.clickProcessDropdownArrow();
|
||||
return this.selectOption(name);
|
||||
};
|
||||
|
||||
this.clickProcessDropdownArrow = function() {
|
||||
Util.waitUntilElementIsVisible(selectProcessDropdownArrow);
|
||||
Util.waitUntilElementIsClickable(selectProcessDropdownArrow)
|
||||
selectProcessDropdownArrow.click();
|
||||
};
|
||||
|
||||
this.checkOptionIsDisplayed = function (name) {
|
||||
var selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
|
||||
Util.waitUntilElementIsVisible(selectProcessDropdown);
|
||||
Util.waitUntilElementIsClickable(selectProcessDropdown);
|
||||
return this;
|
||||
};
|
||||
|
||||
this.checkOptionIsNotDisplayed = function (name) {
|
||||
var selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
|
||||
Util.waitUntilElementIsNotOnPage(selectProcessDropdown);
|
||||
return this;
|
||||
};
|
||||
|
||||
this.selectOption = function (name) {
|
||||
var selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
|
||||
Util.waitUntilElementIsVisible(selectProcessDropdown);
|
||||
Util.waitUntilElementIsClickable(selectProcessDropdown);
|
||||
@@ -62,6 +94,18 @@ var StartProcessPage = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.typeProcessDefinition = function (name) {
|
||||
Util.waitUntilElementIsVisible(processDefinition);
|
||||
Util.waitUntilElementIsClickable(processDefinition);
|
||||
processDefinition.sendKeys(name);
|
||||
return this;
|
||||
};
|
||||
|
||||
this.getProcessDefinitionValue = function () {
|
||||
Util.waitUntilElementIsVisible(processDefinition);
|
||||
return processDefinition.getAttribute('value');
|
||||
};
|
||||
|
||||
this.clickCancelProcessButton = function () {
|
||||
Util.waitUntilElementIsVisible(cancelProcessButton);
|
||||
cancelProcessButton.click();
|
||||
@@ -81,6 +125,10 @@ var StartProcessPage = function () {
|
||||
expect(startProcessButton.isEnabled()).toBe(false);
|
||||
};
|
||||
|
||||
this.clickStartProcessButton = function () {
|
||||
return startProcessButton.click();
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
module.exports = StartProcessPage;
|
||||
|
@@ -27,6 +27,7 @@ import ProcessFiltersPage = require('../pages/adf/process_services/processFilter
|
||||
import AppNavigationBarPage = require('../pages/adf/process_services/appNavigationBarPage');
|
||||
import ProcessDetailsPage = require('../pages/adf/process_services/processDetailsPage');
|
||||
import { AttachmentListPage } from '../pages/adf/process_services/attachmentListPage';
|
||||
import { AppsActions } from '../actions/APS/apps.actions';
|
||||
|
||||
import User = require('../models/APS/User');
|
||||
import AppPublish = require('../models/APS/AppPublish');
|
||||
@@ -49,8 +50,11 @@ describe('Start Process Component', () => {
|
||||
let appNavigationBarPage = new AppNavigationBarPage();
|
||||
let processDetailsPage = new ProcessDetailsPage();
|
||||
let attachmentListPage = new AttachmentListPage();
|
||||
const apps = new AppsActions();
|
||||
let app = resources.Files.APP_WITH_PROCESSES;
|
||||
let appId, procUserModel, secondProcUserModel, tenantId;
|
||||
let simpleApp = resources.Files.WIDGETS_SMOKE_TEST;
|
||||
let appId, procUserModel, secondProcUserModel, tenantId, simpleAppCreated;
|
||||
let processModelWithSe = 'process_with_se', processModelWithoutSe = 'process_without_se';
|
||||
|
||||
let auditLogFile = path.join('../e2e/download/', 'Audit.pdf');
|
||||
|
||||
@@ -83,17 +87,12 @@ describe('Start Process Component', () => {
|
||||
|
||||
await this.alfrescoJsApiUserTwo.login(secondProcUserModel.email, secondProcUserModel.password);
|
||||
|
||||
let pathFile = path.join(TestConfig.main.rootPath + app.file_location);
|
||||
let file = fs.createReadStream(pathFile);
|
||||
let appCreated = await apps.importPublishDeployApp(this.alfrescoJsApiUserTwo, app.file_location);
|
||||
|
||||
let appCreated = await this.alfrescoJsApiUserTwo.activiti.appsApi.importAppDefinition(file);
|
||||
simpleAppCreated = await apps.importPublishDeployApp(this.alfrescoJsApiUserTwo, simpleApp.file_location);
|
||||
|
||||
appId = appCreated.id;
|
||||
|
||||
let publishApp = await this.alfrescoJsApiUserTwo.activiti.appsApi.publishAppDefinition(appId, new AppPublish());
|
||||
|
||||
await this.alfrescoJsApiUserTwo.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
|
||||
|
||||
done();
|
||||
|
||||
});
|
||||
@@ -101,6 +100,8 @@ describe('Start Process Component', () => {
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(appId);
|
||||
|
||||
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(simpleAppCreated.id);
|
||||
|
||||
// await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(secondModelId);
|
||||
//
|
||||
// await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(modelId);
|
||||
@@ -159,7 +160,7 @@ describe('Start Process Component', () => {
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.selectFromProcessDropdown('process_without_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
|
||||
startProcessPage.deleteDefaultName('My Default Name');
|
||||
startProcessPage.checkStartProcessButtonIsDisabled();
|
||||
});
|
||||
@@ -169,7 +170,7 @@ describe('Start Process Component', () => {
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.selectFromProcessDropdown('process_without_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
|
||||
expect(startProcessPage.getDefaultName()).toEqual('My Default Name');
|
||||
startProcessPage.checkStartProcessButtonIsEnabled();
|
||||
});
|
||||
@@ -180,7 +181,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Test');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton()
|
||||
.then(() => {
|
||||
processDetailsPage.getId()
|
||||
@@ -201,13 +202,95 @@ describe('Start Process Component', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286503] No options are displayed when typing a process that does not exist', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.typeProcessDefinition('nonexistent');
|
||||
startProcessPage.checkNoProcessDefinitionOptionIsDisplayed();
|
||||
startProcessPage.checkStartProcessButtonIsDisabled();
|
||||
});
|
||||
|
||||
it('[C286504] Proper options are displayed when typing a part of existent process definitions', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.typeProcessDefinition('process');
|
||||
startProcessPage.checkOptionIsDisplayed(processModelWithoutSe);
|
||||
startProcessPage.checkOptionIsDisplayed(processModelWithSe);
|
||||
startProcessPage.selectOption(processModelWithoutSe);
|
||||
startProcessPage.checkStartProcessButtonIsEnabled();
|
||||
});
|
||||
|
||||
it('[C286508] Only one option is displayed when typing an existent process definition', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.typeProcessDefinition(processModelWithoutSe);
|
||||
startProcessPage.checkOptionIsDisplayed(processModelWithoutSe);
|
||||
startProcessPage.checkOptionIsNotDisplayed(processModelWithSe);
|
||||
startProcessPage.selectOption(processModelWithoutSe);
|
||||
startProcessPage.checkStartProcessButtonIsEnabled();
|
||||
});
|
||||
|
||||
it('[C286509] Should select automatically the processDefinition when the app contains only one', () => {
|
||||
processServicesPage.goToApp(simpleApp.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
expect(startProcessPage.getProcessDefinitionValue()).toBe(simpleApp.title);
|
||||
startProcessPage.checkStartProcessButtonIsEnabled();
|
||||
});
|
||||
|
||||
it('[C286511] Should be able to type the process definition and start a process', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Type');
|
||||
startProcessPage.typeProcessDefinition(processModelWithoutSe);
|
||||
startProcessPage.selectOption(processModelWithoutSe);
|
||||
startProcessPage.checkStartProcessButtonIsEnabled();
|
||||
expect(startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
|
||||
startProcessPage.clickStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Type');
|
||||
});
|
||||
|
||||
it('[C286513] Should be able to use down arrow key when navigating throw suggestions', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.typeProcessDefinition('process');
|
||||
|
||||
startProcessPage.pressDownArrowAndEnter();
|
||||
expect(startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
|
||||
});
|
||||
|
||||
it('[C286514] Should the process definition input be cleared when clicking on options drop down ', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.typeProcessDefinition('process');
|
||||
startProcessPage.selectOption(processModelWithoutSe);
|
||||
expect(startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
|
||||
startProcessPage.clickProcessDropdownArrow();
|
||||
|
||||
expect(startProcessPage.getProcessDefinitionValue()).toBe('');
|
||||
});
|
||||
|
||||
it('[C260453] Add a comment on an active process', () => {
|
||||
processServicesPage.goToApp(app.title);
|
||||
appNavigationBarPage.clickProcessButton();
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Comment Process');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Comment Process');
|
||||
@@ -221,7 +304,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Audit Log');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Audit Log');
|
||||
@@ -239,7 +322,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
|
||||
startProcessPage.enterProcessName('Attach File');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
@@ -258,7 +341,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
|
||||
startProcessPage.enterProcessName('Show Diagram');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
@@ -273,7 +356,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Active Task');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Active Task');
|
||||
@@ -290,7 +373,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Cancel Process');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Cancel Process');
|
||||
@@ -306,7 +389,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('Comment Process 2');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('Comment Process 2');
|
||||
@@ -323,7 +406,7 @@ describe('Start Process Component', () => {
|
||||
processFiltersPage.clickCreateProcessButton();
|
||||
processFiltersPage.clickNewProcessDropdown();
|
||||
startProcessPage.enterProcessName('File');
|
||||
startProcessPage.selectFromProcessDropdown('process_with_se');
|
||||
startProcessPage.selectFromProcessDropdown(processModelWithSe);
|
||||
startProcessPage.clickFormStartProcessButton();
|
||||
processFiltersPage.clickRunningFilterButton();
|
||||
processFiltersPage.selectFromProcessList('File');
|
||||
|
@@ -71,6 +71,7 @@ exports.Files = {
|
||||
WIDGETS_SMOKE_TEST: {
|
||||
file_location: "/resources/apps/Widgets smoke test.zip",
|
||||
formName: "Widgets smoke test",
|
||||
title: "Widgets smoke test",
|
||||
form_fields: {
|
||||
text_id: "text",
|
||||
header_id: "header",
|
||||
|
@@ -20,10 +20,12 @@
|
||||
matInput
|
||||
[formControl]="processDefinitionInput"
|
||||
[matAutocomplete]="auto"
|
||||
id="processDefinitionName"
|
||||
#inputAutocomplete>
|
||||
<div class="adf-process-input-autocomplete">
|
||||
<mat-autocomplete
|
||||
#auto="matAutocomplete"
|
||||
id="processDefinitionOptions"
|
||||
[displayWith]="displayFn">
|
||||
<mat-option *ngFor="let processDef of filteredProcesses | async" [value]="processDef.name">
|
||||
{{ processDef.name }}
|
||||
|
Reference in New Issue
Block a user