Spaces:
Sleeping
Sleeping
var assert = require('assert'), | |
fs = require('fs'), | |
path = require('path'), | |
request = require('request'), | |
vows = require('vows'), | |
union = require('../'); | |
vows.describe('union/streaming').addBatch({ | |
'When using `union`': { | |
'a simple union server': { | |
topic: function () { | |
var self = this; | |
union.createServer({ | |
buffer: false, | |
before: [ | |
function (req, res, next) { | |
var chunks = ''; | |
req.on('data', function (chunk) { | |
chunks += chunk; | |
}); | |
req.on('end', function () { | |
self.callback(null, chunks); | |
}); | |
} | |
] | |
}).listen(9000, function () { | |
request.post('http://localhost:9000').write('hello world'); | |
}); | |
}, | |
'should receive complete POST data': function (chunks) { | |
assert.equal(chunks, 'hello world'); | |
} | |
}, | |
"a simple pipe to a file": { | |
topic: function () { | |
var self = this; | |
union.createServer({ | |
before: [ | |
function (req, res, next) { | |
var filename = path.join(__dirname, 'fixtures', 'pipe-write-test.txt'), | |
writeStream = fs.createWriteStream(filename); | |
req.pipe(writeStream); | |
writeStream.on('close', function () { | |
res.writeHead(200); | |
fs.createReadStream(filename).pipe(res); | |
}); | |
} | |
] | |
}).listen(9044, function () { | |
request({ | |
method: 'POST', | |
uri: 'http://localhost:9044', | |
body: 'hello world' | |
}, self.callback); | |
}); | |
}, | |
'should receive complete POST data': function (err, res, body) { | |
assert.equal(body, 'hello world'); | |
} | |
} | |
} | |
}).export(module); | |