Port tests to use mocha

This commit is contained in:
Brian M. Carlson 2014-02-26 07:10:06 -06:00
parent 0ed940cbfc
commit 290906294d
9 changed files with 95 additions and 103 deletions

View File

@ -30,6 +30,7 @@
"stream-tester": "0.0.5",
"stream-spec": "~0.3.5",
"jsonstream": "0.0.1",
"JSONStream": "~0.7.1"
"JSONStream": "~0.7.1",
"mocha": "~1.17.1"
}
}

View File

@ -1,26 +1,22 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var _ = require('lodash')
var concat = require('concat-stream')
var through = require('through')
var helper = require('./helper')
var QueryStream = require('../')
var client = new pg.Client()
var connected = gonna('connect', 100, function() {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var query = client.query(stream)
query.pipe(through(function(row) {
this.push(row.num)
})).pipe(concat(function(result) {
var total = result.reduce(function(prev, cur) {
return prev + cur
})
assert.equal(total, 20100)
}))
stream.on('end', client.end.bind(client))
helper(function(client) {
it('concats correctly', function(done) {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var query = client.query(stream)
query.pipe(through(function(row) {
this.push(row.num)
})).pipe(concat(function(result) {
var total = result.reduce(function(prev, cur) {
return prev + cur
})
assert.equal(total, 20100)
}))
stream.on('end', done)
})
})
client.connect(connected)

View File

@ -1,24 +1,20 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var _ = require('lodash')
var concat = require('concat-stream')
var through = require('through')
var helper = require('./helper')
var QueryStream = require('../')
var client = new pg.Client()
helper(function(client) {
it('receives error on stream', function(done) {
var stream = new QueryStream('SELECT * FROM asdf num', [])
var query = client.query(stream)
query.on('error', function(err) {
assert(err)
assert.equal(err.code, '42P01')
done()
})
})
var connected = gonna('connect', 100, function() {
var stream = new QueryStream('SELECT * FROM asdf num', [])
var query = client.query(stream)
query.on('error', gonna('emit error', 100, function(err) {
assert(err)
assert.equal(err.code, '42P01')
}))
var done = gonna('keep connetion alive', 100)
client.query('SELECT NOW()', done)
it('continues to function after stream', function(done) {
client.query('SELECT NOW()', done)
})
})
client.connect(connected)
client.on('drain', client.end.bind(client))

View File

@ -1,29 +1,24 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var _ = require('lodash')
var helper = require('./helper')
var QueryStream = require('../')
var client = new pg.Client()
var connected = gonna('connect', 100, function() {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var query = client.query(stream)
var result = []
stream.on('readable', function() {
var res = stream.read()
assert(res, 'should not return null on evented reader')
result.push(res.num)
})
stream.on('end', client.end.bind(client))
stream.on('end', function() {
var total = result.reduce(function(prev, cur) {
return prev + cur
helper(function(client) {
it('works', function(done) {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var query = client.query(stream)
var result = []
stream.on('readable', function() {
var res = stream.read()
assert(res, 'should not return null on evented reader')
result.push(res.num)
})
assert.equal(total, 20100)
stream.on('end', function() {
var total = result.reduce(function(prev, cur) {
return prev + cur
})
assert.equal(total, 20100)
done()
})
assert.strictEqual(query.read(2), null)
})
assert.strictEqual(query.read(2), null)
})
client.connect(connected)

17
test/helper.js Normal file
View File

@ -0,0 +1,17 @@
var pg = require('pg')
module.exports = function(cb) {
describe('pg-query-stream', function() {
var client = new pg.Client()
before(function(done) {
client.connect(done)
})
cb(client)
after(function(done) {
client.end()
client.on('end', done)
})
})
}

View File

@ -1,17 +1,15 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var concat = require('concat-stream')
var QueryStream = require('../')
var client = new pg.Client()
var query = new QueryStream('SELECT pg_sleep(1)', [])
var stream = client.query(query)
var done = gonna('read results', 5000)
stream.pipe(concat(function(res) {
assert.equal(res.length, 1)
done()
client.end()
}))
client.connect()
require('./helper')(function(client) {
it('instant', function(done) {
var query = new QueryStream('SELECT pg_sleep(1)', [])
var stream = client.query(query)
stream.pipe(concat(function(res) {
assert.equal(res.length, 1)
done()
}))
})
})

1
test/mocha.opts Normal file
View File

@ -0,0 +1 @@
--no-exit

View File

@ -1,25 +1,18 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var _ = require('lodash')
var concat = require('concat-stream')
var through = require('through')
var tester = require('stream-tester')
var JSONStream = require('JSONStream')
var stream = require('stream')
var QueryStream = require('../')
var client = new pg.Client()
var connected = gonna('connect', 100, function() {
var stream = new QueryStream('SELECT * FROM generate_series(0, $1) num', [200], {chunkSize: 2, highWaterMark: 2})
var query = client.query(stream)
var pauser = tester.createPauseStream(0.1, 100)
query.pipe(JSONStream.stringify()).pipe(concat(function(json) {
JSON.parse(json)
client.end()
}))
require('./helper')(function(client) {
it('pauses', function(done) {
var stream = new QueryStream('SELECT * FROM generate_series(0, $1) num', [200], {chunkSize: 2, highWaterMark: 2})
var query = client.query(stream)
var pauser = tester.createPauseStream(0.1, 100)
query.pipe(JSONStream.stringify()).pipe(concat(function(json) {
JSON.parse(json)
done()
}))
})
})
client.connect(connected)

View File

@ -1,21 +1,16 @@
var pg = require('pg')
var assert = require('assert')
var gonna = require('gonna')
var tester = require('stream-tester')
var spec = require('stream-spec')
var QueryStream = require('../')
var client = new pg.Client()
var connected = gonna('connect', 100, function() {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var spec = require('stream-spec')
var query = client.query(stream)
spec(query)
require('./helper')(function(client) {
it('passes stream spec', function(done) {
var stream = new QueryStream('SELECT * FROM generate_series(0, 200) num', [])
var query = client.query(stream)
spec(query)
.readable()
.pausable({strict: true})
.validateOnExit()
stream.on('end', client.end.bind(client))
stream.on('end', done)
})
})
client.connect(connected)