Skip to content

Commit

Permalink
feat: migrated to wd promise api
Browse files Browse the repository at this point in the history
  • Loading branch information
sebv committed Mar 26, 2014
1 parent 45566e7 commit ca2dfa3
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 33 deletions.
75 changes: 43 additions & 32 deletions lib/sauce_launcher.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,19 @@ var SauceLauncher = function(args, sauceConnect, /* config.sauceLabs */ config,
(args.platform ? ' (' + args.platform + ')' : '');
var startConnect = config.startConnect !== false;
var log = logger.create('launcher.sauce');
var driverLog = logger.create('wd');

var self = this;
var driver = wd.remote('ondemand.saucelabs.com', 80, username, accessKey);
var driver = wd.promiseChainRemote('ondemand.saucelabs.com', 80, username, accessKey);
driver.on('status', function(info) {
driverLog.debug(info.cyan);
});
driver.on('command', function(eventType, command, response) {
driverLog.debug(' > ' + eventType.cyan, command, (response || '').grey);
});
driver.on('http', function(meth, path, data) {
driverLog.debug(' > ' + meth.magenta, path, (data || '').grey);
});

var pendingCancellations = 0;
var sessionIsReady = false;
Expand All @@ -41,7 +51,7 @@ var SauceLauncher = function(args, sauceConnect, /* config.sauceLabs */ config,
var heartbeat = function() {
pendingHeartBeat = setTimeout(function() {
log.debug('Heartbeat to Sauce Labs (%s) - fetching title', browserName);
driver.title();
driver.title().done();
heartbeat();
}, 60000);
};
Expand Down Expand Up @@ -75,32 +85,37 @@ var SauceLauncher = function(args, sauceConnect, /* config.sauceLabs */ config,
}
}

driver.init(options, function(err, jobId) {
if (pendingCancellations > 0) {
pendingCancellations--;
return;
}

if (err) {
log.error('Can not start %s\n %s', browserName, formatSauceError(err));
return self._done('failure');
}

// Record the job details, so we can access it later with the reporter
jobMapping[self.id] = {
jobId: jobId,
credentials: {
username: username,
password: accessKey
driver
.init(options)
.then(
function(jobId) {
if (pendingCancellations > 0) {
pendingCancellations--;
return;
}
// Record the job details, so we can access it later with the reporter
jobMapping[self.id] = {
jobId: jobId,
credentials: {
username: username,
password: accessKey
}
};

sessionIsReady = true;

log.info('%s session at https://saucelabs.com/tests/%s', browserName, driver.sessionID);
log.debug('WebDriver channel for %s instantiated, opening %s', browserName, url);
return driver.get(url).then(heartbeat);
}, function(err) {
if (pendingCancellations > 0) {
pendingCancellations--;
return;
}
log.error('Can not start %s\n %s', browserName, formatSauceError(err));
return self._done('failure');
}
};

sessionIsReady = true;

log.info('%s session at https://saucelabs.com/tests/%s', browserName, driver.sessionID);
log.debug('WebDriver channel for %s instantiated, opening %s', browserName, url);
driver.get(url, heartbeat);
});
).done();
};

this.on('start', function(url) {
Expand Down Expand Up @@ -141,10 +156,7 @@ var SauceLauncher = function(args, sauceConnect, /* config.sauceLabs */ config,

log.debug('Shutting down the %s driver', browserName);
// workaround - navigate to other page to avoid re-connection
driver.get('about:blank', function() {
driver.quit(allDone);
});

driver.get('about:blank').catch().quit().nodeify(allDone);
sessionIsReady = false;
} else {
pendingCancellations++;
Expand All @@ -153,5 +165,4 @@ var SauceLauncher = function(args, sauceConnect, /* config.sauceLabs */ config,
});
};


module.exports = SauceLauncher;
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
],
"author": "Vojta Jina <vojta.jina@gmail.com>",
"dependencies": {
"wd": "~0.2.8",
"wd": "~0.2.12",
"sauce-connect-launcher": "~0.3.0",
"q": "~0.9.6",
"saucelabs": "~0.1.0"
Expand Down

0 comments on commit ca2dfa3

Please sign in to comment.