Skip to content

Commit 7875c48

Browse files
committed
Add test for destroy + error propagation
1 parent daa7523 commit 7875c48

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

packages/pg-query-stream/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class PgQueryStream extends Readable {
2323

2424
_destroy(_err, cb) {
2525
this.cursor.close((err) => {
26-
cb && cb(err || _err)
26+
cb(err || _err)
2727
})
2828
}
2929

packages/pg-query-stream/test/close.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,21 @@ helper('early close', function (client) {
4545
}, 100)
4646
})
4747

48+
it('emits an error when calling destroy with an error', function (done) {
49+
var stream = new QueryStream('SELECT * FROM generate_series(0, 100), pg_sleep(1)')
50+
client.query(stream)
51+
stream.on('data', () => done(new Error('stream should not have returned rows')))
52+
setTimeout(() => {
53+
stream.destroy(new Error('intentional error'))
54+
stream.on('error', (err) => {
55+
// make sure there's an error
56+
assert(err);
57+
assert.strictEqual(err.message, 'intentional error');
58+
done();
59+
})
60+
}, 100)
61+
})
62+
4863
it('can destroy stream while reading an error', function (done) {
4964
var stream = new QueryStream('SELECT * from pg_sleep(1), basdfasdf;')
5065
client.query(stream)

0 commit comments

Comments
 (0)