I've never used vows before, but according to their reference documentation, you should use this.callback
instead of returning a value. Your vows code might instead look something like:
var ssh2 = require('ssh2'),
assert = require('assert');
suite = vows.describe('conn-test');
suite.addBatch({
topic: function() {
var conn = new ssh2.Connection(),
self = this;
conn.connect({
host: '1.2.3.4',
port: 22,
username: 'root',
password: 'oopsoops'
});
conn.on('ready', function() {
self.callback(conn);
});
},
'run ls': function(conn) {
var self = this;
conn.exec('ls', function(err, stream) {
assert(!err);
stream.on('exit', function(code, signal, coredump) {
assert(code === 0);
assert(!signal);
assert(!coredump);
self.callback();
});
});
}
});