Skip to content

Commit

Permalink
Add more error handling to error handling tests
Browse files Browse the repository at this point in the history
  • Loading branch information
charmander committed Nov 6, 2020
1 parent 07988f9 commit 8bed670
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 13 deletions.
39 changes: 26 additions & 13 deletions packages/pg/test/integration/client/error-handling-tests.js
Expand Up @@ -19,7 +19,10 @@ const suite = new helper.Suite('error handling')

suite.test('sending non-array argument as values causes an error callback', (done) => {
const client = new Client()
client.connect(() => {
client.connect((err) => {
if (err) {
return done(err)
}
client.query('select $1::text as name', 'foo', (err) => {
assert(err instanceof Error)
client.query('SELECT $1::text as name', ['foo'], (err, res) => {
Expand All @@ -32,27 +35,33 @@ suite.test('sending non-array argument as values causes an error callback', (don

suite.test('re-using connections results in error callback', (done) => {
const client = new Client()
client.connect(() => {
client.connect((err) => {
if (err) {
return done(err)
}
client.connect((err) => {
assert(err instanceof Error)
client.end(done)
})
})
})

suite.test('re-using connections results in promise rejection', (done) => {
suite.testAsync('re-using connections results in promise rejection', () => {
const client = new Client()
client.connect().then(() => {
client.connect().catch((err) => {
return client.connect().then(() => {
return helper.rejection(client.connect()).then((err) => {
assert(err instanceof Error)
client.end().then(done)
return client.end()
})
})
})

suite.test('using a client after closing it results in error', (done) => {
const client = new Client()
client.connect(() => {
client.connect((err) => {
if (err) {
return done(err)
}
client.end(
assert.calls(() => {
client.query(
Expand Down Expand Up @@ -227,12 +236,16 @@ suite.test('connected, idle client error', (done) => {

suite.test('cannot pass non-string values to query as text', (done) => {
const client = new Client()
client.connect()
client.query({ text: {} }, (err) => {
assert(err)
client.query({}, (err) => {
client.on('drain', () => {
client.end(done)
client.connect((err) => {
if (err) {
return done(err)
}
client.query({ text: {} }, (err) => {
assert(err)
client.query({}, (err) => {
client.on('drain', () => {
client.end(done)
})
})
})
})
Expand Down
9 changes: 9 additions & 0 deletions packages/pg/test/test-helper.js
Expand Up @@ -232,6 +232,14 @@ var resetTimezoneOffset = function () {
Date.prototype.getTimezoneOffset = getTimezoneOffset
}

const rejection = (promise) =>
promise.then(
(value) => {
throw new Error(`Promise resolved when rejection was expected; value: ${sys.inspect(value)}`)
},
(error) => error
)

module.exports = {
Sink: Sink,
Suite: Suite,
Expand All @@ -242,4 +250,5 @@ module.exports = {
Client: Client,
setTimezoneOffset: setTimezoneOffset,
resetTimezoneOffset: resetTimezoneOffset,
rejection: rejection,
}

0 comments on commit 8bed670

Please sign in to comment.