Files
alfresco-ng2-components/e2e/actions/APS/apps.actions.ts
Eugenio Romano 88870cd4da [ADF-NO-ISSUE] update e2e js-api 3 (#4124)
* update e2e js-api node

* fix protractor import

* use new client

* fix protractor conf comaptibility

* processClient fix

* new js-api

* fix new import

* fix identity call

* fix identity call

* remove aut param

* fix model

* fix model

* increase timeout CS bigFile

* Refactor task details e2e tests

* Fix e2e test

* Rebase branch
2019-03-15 00:06:55 +00:00

125 lines
4.5 KiB
TypeScript

/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import path = require('path');
import fs = require('fs');
import TestConfig = require('../../test.config');
import AppPublish = require('../../models/APS/AppPublish');
import remote = require('selenium-webdriver/remote');
import { browser } from 'protractor';
export class AppsActions {
async getProcessTaskId(alfrescoJsApi, processId) {
let taskList = await alfrescoJsApi.activiti.taskApi.listTasks({});
let taskId = -1;
taskList.data.forEach((task) => {
if (task.processInstanceId === processId) {
taskId = task.id;
}
});
return taskId;
}
async getAppDefinitionId(alfrescoJsApi, appModelId) {
let appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
let appDefinitionId = -1;
appDefinitions.data.forEach((appDefinition) => {
if (appDefinition.modelId === appModelId) {
appDefinitionId = appDefinition.id;
}
});
return appDefinitionId;
}
async importPublishDeployApp(alfrescoJsApi, appFileLocation) {
let appCreated = await this.importApp(alfrescoJsApi, appFileLocation);
let publishApp = await alfrescoJsApi.activiti.appsApi.publishAppDefinition(appCreated.id, new AppPublish());
await alfrescoJsApi.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
return appCreated;
}
async importApp(alfrescoJsApi, appFileLocation) {
browser.setFileDetector(new remote.FileDetector());
let pathFile = path.join(TestConfig.main.rootPath + appFileLocation);
let file = fs.createReadStream(pathFile);
return await alfrescoJsApi.activiti.appsApi.importAppDefinition(file);
}
async publishDeployApp(alfrescoJsApi, appId) {
browser.setFileDetector(new remote.FileDetector());
let publishApp = await alfrescoJsApi.activiti.appsApi.publishAppDefinition(appId, new AppPublish());
await alfrescoJsApi.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
return publishApp;
}
async importNewVersionAppDefinitionPublishDeployApp(alfrescoJsApi, appFileLocation, modelId) {
browser.setFileDetector(new remote.FileDetector());
let pathFile = path.join(TestConfig.main.rootPath + appFileLocation);
let file = fs.createReadStream(pathFile);
let appCreated = await alfrescoJsApi.activiti.appsApi.importNewAppDefinition(modelId, file);
let publishApp = await alfrescoJsApi.activiti.appsApi.publishAppDefinition(appCreated.id, new AppPublish());
await alfrescoJsApi.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
return appCreated;
}
async startProcess(alfrescoJsApi, app, processName?: string) {
browser.setFileDetector(new remote.FileDetector());
let appDefinitionsList = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
let appDefinition = appDefinitionsList.data.filter((currentApp) => {
return currentApp.name === app.name;
});
let processDefinitionList = await alfrescoJsApi.activiti.processApi.getProcessDefinitions({ deploymentId: appDefinition.deploymentId });
let chosenProcess = processDefinitionList.data.find( (processDefinition) => {
return processDefinition.name === processName;
});
let processDefinitionIdToStart = chosenProcess ? chosenProcess.id : processDefinitionList.data[0].id;
let startProcessOptions: any = { processDefinitionId: processDefinitionIdToStart };
if (typeof processName !== 'undefined') {
startProcessOptions.name = processName;
}
return await alfrescoJsApi.activiti.processApi.startNewProcessInstance(startProcessOptions);
}
}