From 416b221b1e5317696357e4a02f773f8f65efeadb Mon Sep 17 00:00:00 2001 From: Yahia Kerim Date: Mon, 22 Mar 2021 11:50:15 +0100 Subject: [PATCH] =?UTF-8?q?fix(TransportRequestPromise):=20add=20finally?= =?UTF-8?q?=20method=20to=20TransportRequestP=E2=80=A6=20(#1415)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(TransportRequestPromise): add finally method to TransportRequestPromise interface * fix(TransportRequestPromise): add finally method to transportReturn object * fix(TransportRequestPromise): add finally method tests --- lib/Transport.d.ts | 1 + lib/Transport.js | 3 +++ test/unit/api.test.js | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) diff --git a/lib/Transport.d.ts b/lib/Transport.d.ts index 979393a60..3464e2bad 100644 --- a/lib/Transport.d.ts +++ b/lib/Transport.d.ts @@ -120,6 +120,7 @@ export interface TransportRequestCallback { export interface TransportRequestPromise extends Promise { abort: () => void; + finally(onFinally?: (() => void) | undefined | null): Promise; } export interface TransportGetConnectionOptions { diff --git a/lib/Transport.js b/lib/Transport.js index a61ce0d3a..c808c51bc 100644 --- a/lib/Transport.js +++ b/lib/Transport.js @@ -163,6 +163,9 @@ class Transport { request.abort() debug('Aborting request', params) return this + }, + finally (onFinally) { + return p.finally(onFinally) } } diff --git a/test/unit/api.test.js b/test/unit/api.test.js index f08422221..b5a7fbb57 100644 --- a/test/unit/api.test.js +++ b/test/unit/api.test.js @@ -124,6 +124,33 @@ test('Error (promises)', t => { }) }) +test('Finally method (promises)', t => { + t.plan(1) + + function handler (req, res) { + res.setHeader('Content-Type', 'application/json;utf=8') + res.end(JSON.stringify({ hello: 'world' })) + } + + buildServer(handler, ({ port }, server) => { + const client = new Client({ + node: `http://localhost:${port}` + }) + + const request = client.search({ + index: 'test', + q: 'foo:bar' + }) + + t.type(request.finally, 'function') + + request + .finally(() => { + server.stop() + }) + }) +}) + test('Abort method (callback)', t => { t.plan(3)