mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
* update project script possible different JS-API * first commit no controll flow * second commit no controll flow * third commit no controll flow * 4 commit no controll flow * 5 commit no controll flow * 6 commit no controll flow * 7 commit no controll flow * 8 commit no controll flow * 9 commit no controll flow * 10 commit no controll flow * 11 commit no controll flow * 12 commit no controll flow * 13 commit no controll flow * 14 commit no controll flow * 15 commit no controll flow * 16 commit no controll flow * 17 commit no controll flow * 18 commit no controll flow * 19 commit no controll flow * 20 commit no controll flow * remove wdpromise, protractor promise and deferred promises * - fixed some incorrect “expect” calls - fixed some matchers - removed “return this;” when not needed - added a few more await-s * forgot a file * fix some failing tests * replaced driver calls with browser calls and enabled back waitForAngular * fix rightClick methods and hopefully some tests * fix settings-component * some more fixes for core and content tests * try to fix some more issues * linting * revert some changes, allowing download on headless chrome won’t work with multiple browser instances * fixes for Search tests * try to remove some wait calls * fix build * increase allScriptsTimeout and try another protractor and web driver version * improve navigation methods * some fixes for notification history and login sso * forgot a space * fix packages and enable some screenshots * navigation bar fixes * fix some test * some fixes for notification history and navigation bar use correct visibility method in attachFileWidget test * fix searching and another fix for navigation * try solve sso login * some more fixes * refactor async forEach into for..of * try fix for search tests * resolve rebabse problems * remove install * fix lint * fix core e2e * fix core e2e * fix core e2e * fix ps tests * fix some tests * fix core e2e * fix core e2e * fix core * fix some issues PS * fix core * fix core * fix some ps test * fix rebase issues * remove save * fix url regressed after rebase * fix url regressed after rebase * fix ps and core * fix lint * more parallel e2e ps * fix some ps cloud test * some cloud fix * fix lint * fix some test * remove files to be ignored * out-tsc * improve one cs test * fix candidate base app * fix ps test * remove click function * clean methods alrady present in browser action * try ugly wait * move wait * remove duplicate call * remove underscore * fix after review * fix imports * minor cosmetic fixes * fix comments test
170 lines
4.8 KiB
JavaScript
170 lines
4.8 KiB
JavaScript
const htmlReporter = require('protractor-html-reporter-2');
|
|
const fs = require('fs');
|
|
const rimraf = require('rimraf');
|
|
const path = require('path');
|
|
|
|
function buildNumber() {
|
|
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
|
|
if (!buildNumber) {
|
|
process.env.TRAVIS_BUILD_NUMBER = Date.now();
|
|
}
|
|
|
|
return process.env.TRAVIS_BUILD_NUMBER;
|
|
}
|
|
|
|
async function uploadScreenshot(alfrescoJsApi, retryCount) {
|
|
let files = fs.readdirSync(path.join(__dirname, './e2e-output/screenshots'));
|
|
|
|
if (files && files.length > 0) {
|
|
|
|
let folder;
|
|
|
|
try {
|
|
folder = await alfrescoJsApi.nodes.addNode('-my-', {
|
|
'name': `retry-${retryCount}`,
|
|
'relativePath': `Builds/${buildNumber()}/screenshot`,
|
|
'nodeType': 'cm:folder'
|
|
}, {}, {
|
|
'overwrite': true
|
|
});
|
|
} catch (error) {
|
|
folder = await alfrescoJsApi.nodes.getNode('-my-', {
|
|
'relativePath': `Builds/${buildNumber()}/screenshot/retry-${retryCount}`,
|
|
'nodeType': 'cm:folder'
|
|
}, {}, {
|
|
'overwrite': true
|
|
});
|
|
}
|
|
|
|
for (const fileName of files) {
|
|
let pathFile = path.join(__dirname, './e2e-output/screenshots', fileName);
|
|
let file = fs.createReadStream(pathFile);
|
|
|
|
let safeFileName = fileName.replace(new RegExp('"', 'g'), '');
|
|
|
|
try {
|
|
await alfrescoJsApi.upload.uploadFile(
|
|
file,
|
|
'',
|
|
folder.entry.id,
|
|
null,
|
|
{
|
|
'name': safeFileName,
|
|
'nodeType': 'cm:content',
|
|
'autoRename': true
|
|
}
|
|
);
|
|
} catch (error) {
|
|
console.log(error);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
async function uploadReport(alfrescoJsApi, filenameReport) {
|
|
let pathFile = path.join(__dirname, './e2e-output/junit-report/html', filenameReport + '.html');
|
|
let reportFile = fs.createReadStream(pathFile);
|
|
|
|
let reportFolder;
|
|
|
|
try {
|
|
reportFolder = await alfrescoJsApi.nodes.addNode('-my-', {
|
|
'name': 'report',
|
|
'relativePath': `Builds/${buildNumber()}`,
|
|
'nodeType': 'cm:folder'
|
|
}, {}, {
|
|
'overwrite': true
|
|
});
|
|
} catch (error) {
|
|
reportFolder = await alfrescoJsApi.nodes.getNode('-my-', {
|
|
'relativePath': `Builds/${buildNumber()}/report`,
|
|
'nodeType': 'cm:folder'
|
|
}, {}, {
|
|
'overwrite': true
|
|
});
|
|
|
|
}
|
|
|
|
try {
|
|
await alfrescoJsApi.upload.uploadFile(
|
|
reportFile,
|
|
'',
|
|
reportFolder.entry.id,
|
|
null,
|
|
{
|
|
'name': reportFile.name,
|
|
'nodeType': 'cm:content',
|
|
'autoRename': true
|
|
}
|
|
);
|
|
|
|
} catch (error) {
|
|
console.log('error' + error);
|
|
|
|
}
|
|
}
|
|
|
|
async function saveReport(alfrescoJsApi, retryCount) {
|
|
let filenameReport = `ProtractorTestReport-${FOLDER}-${retryCount}`;
|
|
|
|
let output = '';
|
|
let savePath = `${projectRoot}/e2e-output/junit-report/`;
|
|
let temporaryHtmlPath = savePath + 'html/temporaryHtml/';
|
|
let lastFileName = '';
|
|
|
|
let files = fs.readdirSync(savePath);
|
|
|
|
if (files && files.length > 0) {
|
|
for (const fileName of files) {
|
|
const testConfigReport = {
|
|
reportTitle: 'Protractor Test Execution Report',
|
|
outputPath: temporaryHtmlPath,
|
|
outputFilename: Math.random().toString(36).substr(2, 5) + filenameReport,
|
|
};
|
|
|
|
let filePath = `${projectRoot}/e2e-output/junit-report/` + fileName;
|
|
|
|
new htmlReporter().from(filePath, testConfigReport);
|
|
lastFileName = testConfigReport.outputFilename;
|
|
}
|
|
}
|
|
|
|
let lastHtmlFile = temporaryHtmlPath + lastFileName + '.html';
|
|
|
|
if (!(fs.lstatSync(lastHtmlFile).isDirectory())) {
|
|
output = output + fs.readFileSync(lastHtmlFile);
|
|
}
|
|
|
|
let fileName = savePath + 'html/' + filenameReport + '.html';
|
|
|
|
fs.writeFileSync(fileName, output, 'utf8');
|
|
|
|
await uploadReport(alfrescoJsApi, filenameReport);
|
|
|
|
rimraf(`${projectRoot}/e2e-output/screenshots/`, function () {
|
|
console.log('done delete screenshot');
|
|
});
|
|
}
|
|
|
|
async function cleanReportFolder() {
|
|
let reportsFolder = `${projectRoot}/e2e-output/junit-report/`;
|
|
|
|
fs.exists(reportsFolder, function (exists, error) {
|
|
if (exists) {
|
|
rimraf(reportsFolder, function (err) {
|
|
});
|
|
}
|
|
|
|
if (error) {
|
|
console.error('[ERROR] fs', error);
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
uploadScreenshot: uploadScreenshot,
|
|
uploadReport: uploadReport,
|
|
cleanReportFolder: cleanReportFolder,
|
|
saveReport: saveReport
|
|
};
|