Turning saucelabs into an actual database object and fixing bugs

pull/248/head
Tim Robinson 2016-02-02 17:26:48 +00:00
rodzic 51b667363c
commit 2131536c8e
1 zmienionych plików z 24 dodań i 20 usunięć

44
node_modules/c9/saucelabs.js wygenerowano vendored
Wyświetl plik

@ -12,6 +12,7 @@ var EXPECTED_RESULT_PROMOTE = "7200 Sauce manual minutes";
var USERNAMESTART = "c9sauce";
var INDEXTAG = "_INDEX_";
var EMAIL_TAGGED = "test+sl" + INDEXTAG + "@c9.io";
var USE_FILE_LOGS = false;
function getRandomChars(len) {
@ -34,11 +35,15 @@ function readFile(file) {
}
function writeFile(file, text) {
if (!USE_FILE_LOGS) return;
fs.writeFileSync(file, text+'\n', "utf-8");
return;
}
function appendFile(file, text) {
if (!USE_FILE_LOGS) return;
fs.appendFileSync(file, text+'\n');
return;
}
@ -118,47 +123,46 @@ function promoteUser(user_object, callback) {
if (err || stdout.indexOf("error") != -1) {
var errmsg = "Error executing curl to promote Saucelabs user (";
errmsg += (err.message ? err.message+", " : "");
errmsg += (err && err.message ? err.message+", " : "");
errmsg += "stdout: " + stdout + ")";
return callback(errmsg);
return callback(new Error(errmsg));
}
if (stdout.indexOf(EXPECTED_RESULT_PROMOTE) == -1)
return callback("Unexpected result promoting Saucelabs user (stdout: " + stdout + ")");
return callback(new Error("Unexpected result promoting Saucelabs user (stdout: " + stdout + ")"));
user_object.promoted = true;
callback(null, user_object);
}
)}
function createAndPromoteUser(callback) {
var lastIndex = readFile(FILE_LASTUSERINDEX);
dbg("last index: " + lastIndex);
var index = parseInt(lastIndex, 10) + 1;
dbg("new index: " + index);
function createAndPromoteUser(index, callback) {
if (!callback) return createAndPromoteUser(null, index);
var useFileLogs = false
if (!index) {
useFileLogs = true;
var lastIndex = readFile(FILE_LASTUSERINDEX);
dbg("last index: " + lastIndex);
var index = parseInt(lastIndex, 10) + 1;
dbg("new index: " + index);
}
var password = getRandomChars(8);
var email = EMAIL_TAGGED.replace(INDEXTAG, index);
var username = USERNAMESTART+index;
createUser(username, password, email, function(err, res1) {
if (err) {
console.error("[ERR] Error occurred: ", JSON.stringify(err));
process.exit(2);
}
if (err) return callback(err);
dbg("writing last index file: " + index);
writeFile(FILE_LASTUSERINDEX, index);
useFileLogs && writeFile(FILE_LASTUSERINDEX, index);
var readable_result = JSON.stringify(res1);
appendFile(FILE_USERS_CREATED, readable_result);
useFileLogs && appendFile(FILE_USERS_CREATED, readable_result);
promoteUser(res1, function(err, res2) {
if (err) {
console.error("[ERR] Error occurred: ", JSON.stringify(err));
process.exit(3);
}
if (err) return callback(err);
readable_result = JSON.stringify(res2);
appendFile(FILE_PROMOTED_ACCOUNTS_CREATED, readable_result);
useFileLogs && appendFile(FILE_PROMOTED_ACCOUNTS_CREATED, readable_result);
console.info("----> user created successfully ("+res2.username+")");
callback(null, readable_result);
@ -167,5 +171,5 @@ function createAndPromoteUser(callback) {
}
module.exports = {
createAndPromoteUser: createAndPromoteUser
createAndPromoteUser: createAndPromoteUser,
};