From a4ef6ce38c1e04bad2215312b1c79e64654cc857 Mon Sep 17 00:00:00 2001 From: Brian C Date: Mon, 22 Aug 2022 19:05:59 -0500 Subject: [PATCH] Fix error handling test (#2789) * Fix error handling test #2569 introduced a bug in the test. The test never passed but because travis-ci lovingly broke the integration we had a long time ago the tests weren't run in CI until I merged. So, this fixes the tests & does a better job cleaning up the query in an errored state. * Update sponsors --- SPONSORS.md | 3 +++ packages/pg-pool/index.js | 4 ++-- packages/pg-pool/test/error-handling.js | 17 +++++++++-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/SPONSORS.md b/SPONSORS.md index 71c5210b..3bebb01e 100644 --- a/SPONSORS.md +++ b/SPONSORS.md @@ -13,6 +13,9 @@ node-postgres is made possible by the helpful contributors from the community as - [simpleanalytics](https://simpleanalytics.com/) - [n8n.io](https://n8n.io/) - [mpirik](https://github.com/mpirik) +- [@BLUE-DEVIL1134](https://github.com/BLUE-DEVIL1134) +- [bubble.io](https://bubble.io/) +- GitHub[https://github.com/github] # Supporters diff --git a/packages/pg-pool/index.js b/packages/pg-pool/index.js index 20dbe734..00f55b4d 100644 --- a/packages/pg-pool/index.js +++ b/packages/pg-pool/index.js @@ -417,11 +417,11 @@ class Pool extends EventEmitter { client.release(err) if (err) { return cb(err) - } else { - return cb(undefined, res) } + return cb(undefined, res) }) } catch (err) { + client.release(err) return cb(err) } }) diff --git a/packages/pg-pool/test/error-handling.js b/packages/pg-pool/test/error-handling.js index f514bd79..7b157085 100644 --- a/packages/pg-pool/test/error-handling.js +++ b/packages/pg-pool/test/error-handling.js @@ -38,14 +38,15 @@ describe('pool error handling', function () { }) it('Catches errors in client.query', async function () { - await expect((new Pool()).query(null)).to.throwError() - await expect(async () => { - try { - await (new Pool()).query(null) - } catch (e) { - console.log(e) - } - }).not.to.throwError() + let caught = false + const pool = new Pool() + try { + await pool.query(null) + } catch (e) { + caught = true + } + pool.end() + expect(caught).to.be(true) }) describe('calling release more than once', () => {