Closed psd closed 13 years ago
This is issue with vows not passing more than one parameter. Vows assumes callbacks(err, res, ..) so if err is set, the remaining parameters are undefined.
A work-round is to not use the vows callback directly, but insert a null err value, e.g.::
browser.get('/register', function (res, $) {
this.callback(err, res, $);
});
This helped me get around the null problems, however the tobi objects now have no statusCode attribute.
♢ Test
A hit
✗ should return 200
» expected { external: undefined,
history: [ '/' ],
cookieJar: { cookies: [] },
followRedirects: true,
port: 80,
host: 'www.google.com',
client:
{ bufferSize: 0,
fd: null,
type: null,
allowHalfOpen: true,
_writeImpl: [Function],
_readImpl: [Function],
_shutdownImpl: [Function],
_state: 'connecting',
ondrain: [Function],
_outgoing: [ [Object] ],
_events: { connect: [Function], close: [Function] },
port: 80,
host: 'www.google.com',
_readWatcher:
{ socket: [Circular],
callback: [Function: onReadable] },
destroyed: false,
readable: false,
_writeQueue: [],
_writeQueueEncoding: [],
_writeQueueFD: [],
_writeQueueCallbacks: [],
_writeWatcher:
{ socket: [Circular],
callback: [Function: onWritable] },
writable: true,
_connecting: true } } to have a property 'statusCode' // should.js:474
I'm keen to use tobi with vows, as outlined in this blog post
but am experiencing the same issue as one of the commenters with $ being undefined in the callback:
results in: