diff --git a/packages/pg/lib/query.js b/packages/pg/lib/query.js index 3b23b0a00..5e6a4bb38 100644 --- a/packages/pg/lib/query.js +++ b/packages/pg/lib/query.js @@ -203,7 +203,7 @@ class Query extends EventEmitter { } if (this._cancelSignal) { if (this._cancelSignal.aborted) { - return this._cancelSignal.reason + return this._cancelSignal.reason || Object.assign(new Error(), { name: 'AbortError' }) } this._cancellation = setupCancellation(this._cancelSignal, connection) } diff --git a/packages/pg/test/integration/cancel/cancel-query-with-abort-signal-tests.js b/packages/pg/test/integration/cancel/cancel-query-with-abort-signal-tests.js index bbd8e7a76..3f41123f4 100644 --- a/packages/pg/test/integration/cancel/cancel-query-with-abort-signal-tests.js +++ b/packages/pg/test/integration/cancel/cancel-query-with-abort-signal-tests.js @@ -94,10 +94,11 @@ suite.test('query can be canceled with abort signal', function (done) { suite.test('long abort signal timeout does not keep the query / connection going', function (done) { const client = new Client() - const signal = AbortSignal.timeout(10_000) + const ac = new AbortController() + setTimeout(() => ac.abort(), 10000).unref() client.query( - new pg.Query({ text: 'SELECT pg_sleep(0.1)', signal }), + new pg.Query({ text: 'SELECT pg_sleep(0.1)', signal: ac.signal }), assert.success((result) => { assert.equal(result.rows[0].pg_sleep, '') client.end(done)