Ho dovuto avvolgere la connessione al database in un comando di esecuzione per farlo funzionare. Non sono sicuro che questo sia il modo migliore per gestire la richiamata, ma funziona. Ecco la versione aggiornata del comando personalizzato:
exports.command = function(sql,callback) {
var self = this;
var pg = require('pg');
var cs = self.globals.testinfo.connectionString;
self.perform(function(self,done) {
pg.connect(cs,function(err,db,done) {
if(err) {
return console.error(err);
}
db.query(sql, function(err,result) {
done();
if(err) {
return console.error(err);
}
console.log(result.rows.length);
callback(result.rows[0]);
});
});
pg.end();
done();
});
};
Ecco come chiamo il comando personalizzato nel test:
browser.myCustomCommand('select * from table limit 1;', function(row) {
browser.assert.deepEqual(row.column,'some value');
});