var assert = require('assert'),
|
|
vows = require('vows'),
|
|
request = require('request'),
|
|
union = require('../');
|
|
|
|
function stream_callback(cb) {
|
|
return function () {
|
|
var stream = new union.ResponseStream();
|
|
|
|
stream.once("pipe", function (req) {
|
|
return cb ? cb(null,req) : undefined;
|
|
});
|
|
|
|
return stream;
|
|
};
|
|
}
|
|
|
|
vows.describe('union/after').addBatch({
|
|
'When using `union`': {
|
|
'a union server with after middleware': {
|
|
topic: function () {
|
|
var self = this;
|
|
|
|
union.createServer({
|
|
after: [ stream_callback(), stream_callback(self.callback) ]
|
|
}).listen(9000, function () {
|
|
request.get('http://localhost:9000');
|
|
});
|
|
},
|
|
'should preserve the request until the last call': function (req) {
|
|
assert.equal(req.req.httpVersion, '1.1');
|
|
assert.equal(req.req.url, '/');
|
|
assert.equal(req.req.method, 'GET');
|
|
}
|
|
}
|
|
}
|
|
}).export(module);
|