Emit 'row' events on streams for progress tracking

This commit is contained in:
Brian M. Carlson
2013-10-28 21:27:15 -05:00
parent d3d648a623
commit c9c843fd07
4 changed files with 14 additions and 5 deletions
+7 -2
View File
@@ -15,17 +15,22 @@ var testRange = function(top) {
var fromClient = client()
var copy = require('../').to
var txt = 'COPY (SELECT * from generate_series(0, ' + top + ')) TO STDOUT'
var txt = 'COPY (SELECT * from generate_series(0, ' + (top - 1) + ')) TO STDOUT'
var stream = fromClient.query(copy(txt))
var rowEmitCount = 0
stream.on('row', function() {
rowEmitCount++
})
var done = gonna('finish piping out', 1000, function() {
fromClient.end()
})
stream.pipe(concat(function(buf) {
var res = buf.toString('utf8')
var expected = _.range(0, top+1).join('\n') + '\n'
var expected = _.range(0, top).join('\n') + '\n'
assert.equal(res, expected)
assert.equal(rowEmitCount, top, 'should have emitted "row" ' + top + ' times but got ' + rowEmitCount)
done()
}))
}