'Testing' Moved Upload Actions to shared testing package (#4616)

* 'Testing' Moved Upload Actions to shared testing package

* Updated Upload Actionswith suggested changes

* Failing tests updated

* Resolving merge conflicts

* updating latest merge conflicts

* resolved merge conflicts

* update to fix previous issues with this.

* testing changes

* fix for failed travis test

* updates to fix failing travis test

* fixes file path error

* latest fix for failing travis test

* latest fix for failing travis test

* Fixing undefined rootPath

* fixes timing issues in content-services travis test

* resolves requested changes
This commit is contained in:
Alexa Fabian
2019-06-17 15:07:25 +01:00
committed by Eugenio Romano
parent 5f1caca5da
commit 725cf22956
60 changed files with 858 additions and 1028 deletions

View File

@@ -16,3 +16,4 @@
*/
export * from './example.action';
export * from './upload.actions';

View File

@@ -0,0 +1,90 @@
/*!
* @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 { browser } from 'protractor';
import * as path from 'path';
import * as fs from 'fs';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
export class UploadActions {
alfrescoJsApi: any = null;
constructor(alfrescoJsApi: AlfrescoApi) {
this.alfrescoJsApi = alfrescoJsApi;
}
async uploadFile(fileLocation, fileName, parentFolderId) {
const pathFile = path.join(browser.params.rootPath + '/e2e' + fileLocation);
const file = fs.createReadStream(pathFile);
return await this.alfrescoJsApi.upload.uploadFile(
file,
'',
parentFolderId,
null,
{
'name': fileName,
'nodeType': 'cm:content',
'renditions': 'doclib'
}
);
}
async createEmptyFiles(emptyFileNames: string[], parentFolderId) {
const filesRequest = [];
for (let i = 0; i < emptyFileNames.length; i++) {
const jsonItem = {};
jsonItem['name'] = emptyFileNames[i];
jsonItem['nodeType'] = 'cm:content';
filesRequest.push(jsonItem);
}
return this.alfrescoJsApi.nodes.addNode(parentFolderId, filesRequest, {}, {
filedata: ''
});
}
async createFolder(folderName, parentFolderId) {
return this.alfrescoJsApi.node.addNode(parentFolderId, {
'name': folderName,
'nodeType': 'cm:folder'
}, {}, {});
}
async deleteFileOrFolder(nodeId) {
return this.alfrescoJsApi.node.deleteNode(nodeId, { permanent: true });
}
async uploadFolder(sourcePath, folder) {
const absolutePath = 'e2e/' + sourcePath;
const files = fs.readdirSync(path.join(browser.params.rootPath, absolutePath));
let uploadedFiles;
const promises = [];
if (files && files.length > 0) {
for (const fileName of files) {
const pathFile = path.join(sourcePath, fileName);
promises.push(this.uploadFile(pathFile, fileName, folder));
}
uploadedFiles = await Promise.all(promises);
}
return uploadedFiles;
}
}