[ACS-259] refactor login page (#5733)

* refator login page

* refator login page

* remove obsolete classes and move what is needed in the test pck

* fix const

* revert modify

* remove duplicate browser property

* fix build

* fix

* fix

* fix lint

* move drop action in testing
remove not necessary space
js-api centralize content

* first refactor use js-api

* fix protractor

* refactor test config

* simplify properties
fix namings

* ps cloud simplify
remove unused js files

* id fix

* fix search test
simplify environment var step 1

* fix lint

* first user iteration fix

* fix model

* unify use of apiService

* first step automatic user creation Identity

* refactor creation user content-services

* refactor creation user search

* refactor creation user core

* process service refactoring 1

* process service refactoring 1

* process service refactoring 2

* fix process

* appconfig

* fix process util

* fix gallery

* fix "this" reference issues

* fix incorrect import paths

* fix core

* some fixes

* allign

* fix some test
remove structure folder and move in actions

* fixes

* move folders in the right place

* fix

* fix rebase

* solve build issue

* fix e2e

* change init aae

* order api and some fixes

* fix possible not valid password

* fix some ps test

* replace host port also in objects

* Update app-config.service.ts

* fix process

* fix process test

* process service cloud fix

* fiexs

* modify init script

* fix two test

* remove unused property

* host issue

* not use npx

* fix ps cloud test

Co-authored-by: Denys Vuika <denys.vuika@gmail.com>
This commit is contained in:
Eugenio Romano
2020-06-04 14:41:30 +01:00
committed by GitHub
parent f0df6b3a5f
commit a78f24ada1
297 changed files with 5130 additions and 9622 deletions

View File

@@ -18,18 +18,15 @@
import CONSTANTS = require('../util/constants');
import {
FileBrowserUtil,
LoginPage, SelectAppsDialog,
LoginSSOPage, SelectAppsDialog,
ProcessInstanceTasksPage,
StringUtil,
Widget,
ApplicationsUtil,
StartProcessPage
StartProcessPage, ApiService, UserModel, LocalStorageUtil
} from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { FileModel } from '../models/ACS/file.model';
import { Tenant } from '../models/APS/tenant';
import { User } from '../models/APS/user';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
@@ -38,11 +35,16 @@ import { ProcessServicesPage } from '../pages/adf/process-services/process-servi
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { ContentServicesPage } from '../pages/adf/content-services.page';
import { UsersActions } from '../actions/users.actions';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { UploadDialogPage } from '../pages/adf/dialog/upload-dialog.page';
describe('Start Process Component', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const simpleApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const dateFormApp = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const startProcessAttachFileApp = browser.params.resources.Files.START_PROCESS_ATTACH_FILE;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const startProcessPage = new StartProcessPage();
@@ -54,14 +56,17 @@ describe('Start Process Component', () => {
const contentServicesPage = new ContentServicesPage();
const selectAppsDialog = new SelectAppsDialog();
const widget = new Widget();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const simpleApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const dateFormApp = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const startProcessAttachFileApp = browser.params.resources.Files.START_PROCESS_ATTACH_FILE;
let appId, procUserModel, secondProcUserModel, tenantId, simpleAppCreated, dateFormAppCreated;
const processModelWithSe = 'process_with_se', processModelWithoutSe = 'process_without_se';
const apiService = new ApiService();
const apiServiceUserTwo = new ApiService();
let procUserModel: UserModel;
let secondProcUserModel: UserModel;
let appCreated, simpleAppCreated, dateFormAppCreated;
const processName255Characters = StringUtil.generateRandomString(255);
const processNameBiggerThen255Characters = StringUtil.generateRandomString(256);
const lengthValidationError = 'Length exceeded, 255 characters max.';
const auditLogFile = 'Audit.pdf';
@@ -72,57 +77,31 @@ describe('Start Process Component', () => {
});
describe('Provider: BPM', () => {
beforeAll(async () => {
try {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const usersActions = new UsersActions(apiService);
procUserModel = await usersActions.createUser();
secondProcUserModel = await usersActions.createUser(new UserModel({ tenantId: procUserModel.tenantId }));
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
await apiServiceUserTwo.getInstance().login(secondProcUserModel.email, secondProcUserModel.password);
tenantId = newTenant.id;
procUserModel = new User({tenantId: tenantId});
secondProcUserModel = new User({tenantId: tenantId});
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(procUserModel);
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(secondProcUserModel);
this.alfrescoJsApiUserTwo = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApiUserTwo.login(secondProcUserModel.email, secondProcUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApiUserTwo);
const appCreated = await applicationsService.importPublishDeployApp(app.file_path);
simpleAppCreated = await applicationsService.importPublishDeployApp(simpleApp.file_path);
dateFormAppCreated = await applicationsService.importPublishDeployApp(dateFormApp.file_path);
appId = appCreated.id;
} catch (error) {
throw new Error(`API call failed in beforeAll: ${error}`);
}
const applicationsService = new ApplicationsUtil(apiServiceUserTwo);
appCreated = await applicationsService.importPublishDeployApp(app.file_path);
simpleAppCreated = await applicationsService.importPublishDeployApp(simpleApp.file_path);
dateFormAppCreated = await applicationsService.importPublishDeployApp(dateFormApp.file_path);
});
afterAll(async () => {
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(appId);
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(simpleAppCreated.id);
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(dateFormAppCreated.id);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(appCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(simpleAppCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(dateFormAppCreated.id);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(procUserModel.tenantId);
});
describe(' Once logged with user without apps', () => {
beforeEach(async () => {
await loginPage.loginToProcessServicesUsingUserModel(procUserModel);
await loginPage.login(procUserModel.email, procUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
});
@@ -137,9 +116,8 @@ describe('Start Process Component', () => {
});
describe(' Once logged with user with app', () => {
beforeAll(async () => {
await loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
await loginPage.login(secondProcUserModel.email, secondProcUserModel.password);
});
beforeEach(async () => {
@@ -175,15 +153,15 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.deleteDefaultName();
await browser.sleep(1000);
await startProcessPage.checkStartProcessButtonIsDisabled();
await startProcessPage.clickProcessDropdownArrow();
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
});
it('[C260443] Should be possible to start a process without start event', async () => {
@@ -196,7 +174,7 @@ describe('Start Process Component', () => {
await expect(await startProcessPage.checkSelectProcessPlaceholderIsDisplayed()).toBe('');
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await expect(await startProcessPage.getDefaultName()).toEqual('My Default Name');
@@ -209,11 +187,11 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Test');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processDetailsPage.checkDetailsAreDisplayed();
const processId = await processDetailsPage.getId();
const response = await this.alfrescoJsApi.activiti.processApi.getProcessInstance(processId);
const response = await apiService.getInstance().activiti.processApi.getProcessInstance(processId);
await expect(await processDetailsPage.getProcessStatus()).toEqual(CONSTANTS.PROCESS_STATUS.RUNNING);
await expect(await processDetailsPage.getEndDate()).toEqual(CONSTANTS.PROCESS_END_DATE);
@@ -241,9 +219,9 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
});
@@ -252,10 +230,10 @@ describe('Start Process Component', () => {
await processServiceTabBarPage.clickProcessButton();
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsNotDisplayed(processModelWithSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.typeProcessDefinition(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsNotDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
});
@@ -274,10 +252,10 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Type');
await startProcessPage.typeProcessDefinition(processModelWithoutSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.typeProcessDefinition(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.clickStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Type');
@@ -291,7 +269,7 @@ describe('Start Process Component', () => {
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.pressDownArrowAndEnter();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
});
it('[C286514] Should the process definition input be cleared when clicking on options drop down ', async () => {
@@ -300,8 +278,8 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.selectProcessOption(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.clickProcessDropdownArrow();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe('');
@@ -313,7 +291,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Comment Process');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Comment Process');
@@ -327,7 +305,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Audit Log');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Audit Log');
@@ -345,7 +323,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Attach File');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
@@ -364,7 +342,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Show Diagram');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
@@ -379,7 +357,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Active Task');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Active Task');
@@ -388,7 +366,7 @@ describe('Start Process Component', () => {
});
it('[C260457] Should display process in Completed when cancelled', async () => {
await loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
await loginPage.login(secondProcUserModel.email, secondProcUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp(app.title);
@@ -396,7 +374,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Cancel Process');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Cancel Process');
@@ -412,7 +390,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Comment Process 2');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Comment Process 2');
@@ -429,7 +407,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('File');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('File');
@@ -448,7 +426,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName(processName255Characters);
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
await startProcessPage.enterProcessName(processNameBiggerThen255Characters);
@@ -479,47 +457,34 @@ describe('Start Process Component', () => {
});
});
describe('Provider: ALL', () => {
describe('Provider: ALL', () => {
const uploadDialog = new UploadDialogPage();
let processUserModel, contentUserModel;
let processUserModel;
const imageUploaded = new FileModel({
'name': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_name,
'location': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_location
});
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
const apiServiceAll = new ApiService({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
hostEcm: browser.params.testConfig.appConfig.ecmHost,
hostBpm: browser.params.testConfig.appConfig.bpmHost
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const usersActions = new UsersActions(apiServiceAll);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await apiServiceAll.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
contentUserModel = new AcsUserModel({
'id': processUserModel.email,
'password': processUserModel.password,
'firstName': processUserModel.firstName,
'lastName': processUserModel.lastName,
'email': processUserModel.email
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.core.peopleApi.addPerson(contentUserModel);
const alfrescoJsBPMAdminUser = new ApiService({ hostBpm: browser.params.testConfig.appConfig.bpmHost });
this.alfrescoJsBPMAdminUser = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsBPMAdminUser.login(processUserModel.email, processUserModel.password);
await alfrescoJsBPMAdminUser.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsBPMAdminUser);
const applicationsService = new ApplicationsUtil(alfrescoJsBPMAdminUser);
const appCreated = await applicationsService.importPublishDeployApp(startProcessAttachFileApp.file_path);
appId = appCreated.id;
await applicationsService.importPublishDeployApp(startProcessAttachFileApp.file_path);
});
afterAll(async () => {
@@ -527,7 +492,9 @@ describe('Start Process Component', () => {
});
it('[C260490] Should be able to start a Process within ACS', async () => {
await loginPage.loginToAllUsingUserModel(contentUserModel);
await LocalStorageUtil.setStorageItem('providers', 'ALL');
await loginPage.login(processUserModel.email, processUserModel.password);
await contentServicesPage.goToDocumentList();
await contentServicesPage.checkDocumentListElementsAreDisplayed();