Skip to content

Commit

Permalink
Removes calls to process.close
Browse files Browse the repository at this point in the history
  • Loading branch information
johnnyman727 committed Feb 24, 2016
1 parent ea6659c commit cdf42b5
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
20 changes: 14 additions & 6 deletions lib/tessel/wifi.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,15 +149,21 @@ Tessel.prototype.setWiFiState = function(enable) {
return reject(err);
}
if (enable) {
var result = {};

var result = {
type: 'reject',
message: 'Unable to verify connection. Please ensure you have entered the correct network credentials.'
};

// A timeout in case the process never closes
var timeout = setTimeout(function() {
result = {
type: 'reject',
message: 'Timed out waiting to verify connection. Run `t2 wifi` to manually verify connection. If not connected, ensure you have entered the correct network credentials.'
};
// End the connection
remoteProcess.close();
return returnResult();
}, Tessel.__wifiConnectionTimeout);

remoteProcess.stdout.on('data', function(data) {
if (data.indexOf('signal') > -1) {
logs.info('Successfully connected!');
Expand All @@ -166,17 +172,19 @@ Tessel.prototype.setWiFiState = function(enable) {
type: 'resolve',
message: '' // resolve doesn't report messages
};
remoteProcess.close();
}
});
remoteProcess.on('close', function() {

var returnResult = () => {
if (result.type === 'reject') {
reject(result.message);
} else {
logState();
resolve();
}
});
};

remoteProcess.on('close', returnResult);
} else {
logState();
resolve();
Expand Down
9 changes: 8 additions & 1 deletion test/unit/wifi.js
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ module.exports['Tessel.prototype.connectToNetwork'] = {
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -241,6 +242,7 @@ module.exports['Tessel.prototype.connectToNetwork'] = {
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -287,6 +289,7 @@ module.exports['Tessel.prototype.connectToNetwork'] = {
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -330,10 +333,11 @@ module.exports['Tessel.prototype.connectToNetwork'] = {
// Test is expecting several closes...;
this.tessel._rps.on('control', (command) => {
if (command.toString() === 'ubus call iwinfo info {"device":"wlan0"}') {
// Write to stderr so it completes as expected
// Write to stdout so it completes as expected
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', errMessage);
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -425,6 +429,7 @@ module.exports['Tessel.prototype.connectToNetwork'] = {
this.tessel._rps.stdout.emit('data', 'do not have success yet');
// then write the keyword we're looking for for success
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -488,6 +493,7 @@ module.exports['Tessel.setWifiState'] = {
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down Expand Up @@ -528,6 +534,7 @@ module.exports['Tessel.setWifiState'] = {
// Wrap in setImmediate to make sure listener is set up before emitting
setImmediate(() => {
this.tessel._rps.stdout.emit('data', 'signal');
setImmediate(() => this.tessel._rps.emit('close'));
});
} else {
setImmediate(() => {
Expand Down

0 comments on commit cdf42b5

Please sign in to comment.