"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var protractor_1 = require("protractor"); //var helper = require('protractor-helpers'); var fs = require('fs'); var system = require('util'); var exec = require('child_process').exec; var fs_extra = require('fs-extra'); var AllureReporter = require('jasmine-allure-reporter'); var fileExists = require('file-exists'); var log4js = require('log4js'); var json = require('./log.json'); var x = new Array(); function specFile() { for (var v in json) { x.push(json[v]["Spec"]); } console.log(x); } exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', //seleniumArgs: ['-Dwebdriver.edge.driver=C:\\Program Files (x86)\\Microsoft Web Driver\\MicrosoftWebDriver.exe'], //seleniumArgs: ['-Dwebdriver.edge.driver=D:\\IEDriverServer3.4.0.exe'], //seleniumServerJar: '../node_modules//protractor//node_modules//webdriver-manager//selenium//selenium-server-standalone-3.4.0.jar', // directConnect:true, useAllAngular2AppRoots: true, /*capabilities: { //'browserName': 'internet explorer', //'browserName': 'chrome', //'browserName': 'MicrosoftEdge', //'platform': 'windows', // 'version': '11' },*/ capabilities: { 'browserName': 'chrome', chromeOptions: { args: ['--no-sandbox', 'disable-infobars'] } }, /* capabilities: { 'browserName': 'internet explorer' //'platform': 'ANY', //'version': '11' },*/ // multiCapabilities: [{ // 'browserName': 'chrome', // } , { // 'browserName': 'firefox'}, // { // 'browserName': 'MicrosoftEdge', // } // ], framework: 'jasmine2', //specs: ['./specs/**/RealTimeDrillingOverviewSpec.js','./specs/**/LogWidgetSpec.js','./specs/**/NumericMonitoningSpec.js','./specs/**/CreateUsersAndRolesSpec.js'], //specs: ['./specs/**/CreateUsersAndRolesSpec.js','./specs/**/RealTimeDrillingOverviewSpec.js','./specs/**/LogWidgetSpec.js','./specs/**/NumericMonitoningSpec.js','./specs/**/TrajectorySpec.js'], //specs: ['./specs/**/UserAndRoleCreationSpec.js','./specs/**/RealTimeDrillingOverviewSpec.js'], //specs: x, specs: ['./specs/**/TrajectorySpec.js'], // specs: ['./specs/**/CreateUsersAndRolesSpec.js'], //specs: ['./specs/**/MyWellsSpec.js'], // specs: ['./specs/**/LogWidgetSpec.js'], // specs: ['./specs/**/NumericMonitoningSpec.js'], allScriptsTimeout: 50000, getPageTimeout: 50000, //implicitlyWait:5000, //allScriptsTimeout:30000, //restartBrowserBetweenTests: true, //setting to true exposes the bug in the protractor/jasmine. //specs: ['./TSOnlyExp/app.js'], jasmineNodeOpts: { defaultTimeoutInterval: 200000, isVerbose: true, includeStackTrace: true }, onPrepare: function () { function puts(error, stdout, stderr) { system.puts(stdout); } exec("RD /S /Q allure-results", puts); jasmine.getEnv().addReporter(new AllureReporter({ resultsDir: 'allure-results' })); var SpecReporters = require('jasmine-spec-reporter').SpecReporter; jasmine.getEnv().addReporter(new SpecReporters({ displayStacktrace: 'all' })); //var poseidon = new FactoryRegistry(); //poseidon.testRunServices.runCacheServices var testRunTimeData = ""; var testRunCache = ""; var testOutDir = ""; var testRunResultsDir = ""; var browserName = protractor_1.browser.driver.getCapabilities() //added/updated the following code blocks to support run time cache and browser specific actions within the date range : 07-May-2017 to 21-May-2017 .then(function (capabilities) { //console.log(capabilities); protractor_1.browser.browserName = capabilities.get("browserName"); protractor_1.browser.params.runInfo.testRunBrowser = protractor_1.browser.browserName; protractor_1.browser.browserVersion = capabilities.get("version"); protractor_1.browser.params.runInfo.browserVersion = protractor_1.browser.browserVersion; }). then(function () { //Enter run label that will be used to create test result folder. var testRunLabel = 'run-1-sanity-'; //Arrive at current date and time value for suffixing with the run label. var today = new Date(); var date = today.getDate() + '-' + (today.getMonth() + 1) + '-' + today.getFullYear(); var time = today.getHours() + "-" + today.getMinutes() + "-" + today.getSeconds(); var dateTime = date + '@' + time; testRunResultsDir = './test-results/' + testRunLabel + dateTime + '/'; fs_extra.ensureDir(testRunResultsDir, function (err) { if (err) console.log('Error while creating test run parent directories -- ' + err); // => null else console.log('Test run result parent directories created !'); }); testOutDir = './run-outputs/' + testRunLabel + dateTime + '/'; fs_extra.ensureDir(testOutDir, function (err) { if (err) console.log('Error while creating test run output parent folders -- ' + err); // => null else { console.log('Test run output parent folders created !'); } }); }). then(function () { protractor_1.browser.sleep(4000); }). then(function () { console.log("browser.params.runInfo.testRunBrowser : : :" + protractor_1.browser.params.runInfo.testRunBrowser); var runBrowser = ""; if (protractor_1.browser.params.runInfo.testRunBrowser === "chrome") { runBrowser = "chrome"; } else if (protractor_1.browser.params.runInfo.testRunBrowser === "firefox") { runBrowser = "firefox"; } else if (protractor_1.browser.params.runInfo.testRunBrowser === "internet explorer") { runBrowser = "internet_explorer"; } testRunResultsDir = testRunResultsDir + runBrowser + "_" + protractor_1.browser.params.runInfo.browserVersion; fs_extra.ensureDir(testRunResultsDir, function (err) { if (err) console.log('Error while creating browser specific test result directories -- ' + err); // => null else console.log('Browser specific test result directories created !'); }); //Set the test-results folder for Allure Reporting. //console.log("FOR ALLURE:"+testRunResultsDir); // jasmine.getEnv().addReporter(new AllureReporter({ // resultsDir: testRunResultsDir // })); testOutDir = testOutDir + runBrowser + "_" + protractor_1.browser.params.runInfo.browserVersion; protractor_1.browser.params.runInfo.testRunDirectory = testOutDir; fs_extra.ensureDir(testOutDir, function (err) { if (err) console.log('Error while creating browser specific output directory in run-outputs -- ' + err); // => null else { console.log('Browser specific output directory created successfully in run-outputs !'); } }); }). then(function () { protractor_1.browser.sleep(4000); }). then(function () { console.log("browser.params.runInfo.testRunDirectory : : :" + protractor_1.browser.params.runInfo.testRunDirectory); if (fs.existsSync(testOutDir)) { console.log("Validating ::: Browser specific output directory is available !"); } var runTimeCache = { //description :"Run-time test input cache" //"browser :" + browser.browserName //"version :" + browser.browserVersion runMetadata: [ { description: "Run time cache for a test run" }, { browser: protractor_1.browser.browserName }, { version: protractor_1.browser.browserVersion }, ], appData: [], }; var json = JSON.stringify(runTimeCache); fs.writeFile(testOutDir + '/testRunCache.json', json, 'utf8', function (err, dt) { if (err) { console.log("ERROR ::: Writing to testRunCache :" + err); } else { fileExists(testOutDir + '/testRunCache.json', function (err, exists) { return console.log("Does test run cache exist ? :" + exists); }); // OUTPUTS: true or false console.log("Created test run cache with base contents !"); } }); fs.readFile(testOutDir + '/testRunCache.json', 'utf8', function readFileCallback(err, data) { if (err) { console.log("ERROR ::: Reading testRunCache :" + err); } else { runTimeCache = undefined; runTimeCache = JSON.parse(data); //now it's an object console.log("Config:::RUN COUNT:" + runTimeCache.runMetadata.length); console.log("Config:::APP COUNT:" + runTimeCache.appData.length); //runTimeCache.appData.push({In_Config_1:"50",roles:"Delete,Recreate-1"}) //runTimeCache.appData.push({In_Config_2:"100",roles:"Delete,Search"}) //runTimeCache.appData.push({In_Config_3:"150",roles:"Index,Recreate-2"}) //console.log("Config:::RUN COUNT-2:"+runTimeCache.runMetadata.length); //console.log("Config:::APP COUNT-2:"+runTimeCache.appData.length); json = JSON.stringify(runTimeCache); //convert it back to json fs.writeFile(testOutDir + '/testRunCache.json', json, 'utf8', function (err, dt) { if (err) { console.log(err); } }); } }); }). then(function () { try { fs_extra.copy('./testinputs', './jsout/testinputs', function (err) { if (err) return console.error("Error syncing test input contents. Details:" + err); if (err === undefined || err === null) { console.log('Test input files synced successfully !'); var x_1 = 0; if (!fs.existsSync('./jsout/testinputs')) { console.log("Test inputs directories still not available...waiting for max 7 seconds for syncing"); } while (!fs.existsSync('./jsout/testinputs') && x_1 <= 7) { x_1++; protractor_1.browser.sleep(1000); } } }); fs_extra.copy('./run-outputs', './jsout/run-outputs', function (err) { if (err) { return console.error("Error syncing run-outputs contents. Details:" + err); } if (err === undefined || err === null) { console.log('Synced the run-output contents !'); } }); /*fs_extra.copy('./pages/sitecomviewer/widgets/*.js', './jsout/pages/sitecomviewer/widgets/*.js', err => { if (err) { return console.error("Error syncing Log Widget-OCR related js files. Details:"+err); } if(err === undefined || err===null) { console.log('Synced the Log Widget-OCR related js files !'); } });*/ //ONLY FOR EXPERIMENTATION //var obj1 = require(runTimeCacheFile); //console.log("CHECK THIS:"+obj1.description+" "+obj1.browser); } catch (err) { console.log("ERROR while syncing test run artefacts :" + err); } }). then(function () { // console.log("TEST-1111"); if (!fs.existsSync('./test-results')) { console.log("test-results directory is unavailable ! Creating the same..."); fs_extra.ensureDir('./test-results', function (err) { if (err) console.log('Error while creating test-results directory -- ' + err); // => null else { console.log('Test result directory created !'); } }); } else { console.log('test-results directory is available !'); console.log("REPORTINGGGGG::::" + testRunResultsDir); } }); var globals = require('protractor'); //let browser = globals.browser; //Set the test-results folder for Allure Reporting second time here to avoid a run time error. // jasmine.getEnv().addReporter(new AllureReporter({ // resultsDir: testRunResultsDir // })); /* exec("del /q test-results", (error, stdout, stderr) => { if(error){ console.log("Error:"+error); } console.log("Stdout:"+stdout); console.log("Stderr:"+stderr); }),*/ // commented this block to not delete the test resuts folder. //exec("RD /S /Q target", puts); //fs.createReadStream('./data.json').pipe(fs.createWriteStream('./JSOut/data.json')); //browser.sleep(15000); protractor_1.browser.manage().window().maximize(); protractor_1.browser.manage().timeouts().implicitlyWait(600000); protractor_1.browser.loggerInfo = log4js.getLogger("info"); protractor_1.browser.loggerDebug = log4js.getLogger("debug"); protractor_1.browser.loggerError = log4js.getLogger("error"); // console.log = (msg) => browser.loggerError.trace(msg); //var AllureReporter = require('../../index.js'); //var AllureReporter = require('jasmine-allure-reporter'); //var AllureReporter = require('./node_modules/jasmine-allure-reporter/index.js'); }, beforeLaunch: function () { specFile(); log4js.configure({ appenders: [ { type: 'file', filename: "logs/error.log", category: 'error', maxLogSize: 20480, backups: 10 }, { type: "file", filename: "logs/info.log", category: 'info', maxLogSize: 20480, backups: 10 }, { type: 'file', filename: "logs/debug.log", category: 'debug', maxLogSize: 20480, backups: 10 } ] }); }, params: { //testRunBrowser : "internet explorer", runInfo: //added on 07-May-2017 - Yusuf { testRunBrowser: "", browserVersion: "", testRunDirectory: "" }, credentials: [ { normal: { userID: "automation", password: "automation" // userID :poseidon.testRunServices.getCacheContext().readKey("UserName"), // password : poseidon.testRunServices.getCacheContext().readKey("UserName") }, Admin: { userID: "admin", password: "poseidon" } } ], testServiceConfigs: { imageServices: { base: "js", baselineImgCapture: true }, logServices: { packageName: "winston" }, emailServices: { enabled: true, packageName: "nodemailer" } } }, }; /* */ /* testRunData = "{" + String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + "description : Run-time test input cache,"+String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + 'browser : '+ browser.browserName+','+String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + 'version : '+browser.browserVersion+','+ String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + //browserName.then(br => {browser.browserName = br;}) 'runTimeInputs:' +String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + '{' + String.fromCharCode(13) + "\r\n" + /\r/ && 'CR' + /\n/ && 'LF' + '}'+ String.fromCharCode(13) + /\r/ && 'CR' + /\n/ && 'LF' + "}";*/ /*testRunData = '{'+ 'description : "Run-time test input cache",'+ 'browser : "' + browser.browserName+ '",' + 'version : "'+ browser.browserVersion + '",'+ 'runTimeInputs:'+ '{' + '}' + '}';*/ /* testRunTimeData = '{'+ 'default:'+ '[' + '"description" :"Run-time test input cache",'+ '"browser" :"' + browser.browserName + '",' + '"version" :"'+ browser.browserVersion + '",'+ '"runTimeInputs":'+ '{' + '}' + ']'+ '};';*/ // this is run time json content, which will also have more data to be added in different scenarios.. //# sourceMappingURL=config.js.map