मुझे यह काम करने के लिए डेटाबेस कनेक्शन को एक प्रदर्शन कमांड में लपेटना पड़ा। मुझे यकीन नहीं है कि कॉलबैक को संभालने का यह सबसे अच्छा तरीका है, लेकिन यह काम करता है। यहां कस्टम कमांड का अपडेटेड वर्जन दिया गया है:
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();
});
};
यहां बताया गया है कि मैं परीक्षण में कस्टम कमांड को कैसे कॉल करता हूं:
browser.myCustomCommand('select * from table limit 1;', function(row) {
browser.assert.deepEqual(row.column,'some value');
});