diff --git a/test/client-connect.js b/test/client-connect.js index 7d9e561f242..da155bc3d05 100644 --- a/test/client-connect.js +++ b/test/client-connect.js @@ -29,6 +29,11 @@ test('connect aborted after connect', async (t) => { pipelining: 3 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.connect({ path: '/', diff --git a/test/client-pipelining.js b/test/client-pipelining.js index 9e1281b53a3..e21a7c2f6e0 100644 --- a/test/client-pipelining.js +++ b/test/client-pipelining.js @@ -41,6 +41,11 @@ test('20 times GET with pipelining 10', async (t) => { pipelining: 10 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) for (let i = 0; i < num; i++) { makeRequest(i) @@ -98,6 +103,11 @@ test('A client should enqueue as much as twice its pipelining factor', async (t) pipelining: 2 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) for (; sent < 2;) { t.ok(client[kSize] <= client.pipelining, 'client is not full') @@ -148,6 +158,11 @@ test('pipeline 1 is 1 active request', async (t) => { pipelining: 1 }) after(() => client.destroy()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.request({ path: '/', method: 'GET' @@ -201,6 +216,11 @@ test('pipelined chunked POST stream', async (t) => { pipelining: 2 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.request({ path: '/', @@ -270,6 +290,11 @@ test('pipelined chunked POST iterator', async (t) => { pipelining: 2 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.request({ path: '/', @@ -393,6 +418,11 @@ test('pipelining non-idempotent', async (t) => { pipelining: 2 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) let ended = false client.request({ @@ -439,6 +469,11 @@ function pipeliningNonIdempotentWithBody (bodyType) { pipelining: 2 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) let ended = false let reading = false @@ -747,6 +782,11 @@ test('pipelining blocked', async (t) => { pipelining: 10 }) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.request({ path: '/', method: 'GET', diff --git a/test/client-post.js b/test/client-post.js index 3f68db92b8a..10350e031ee 100644 --- a/test/client-post.js +++ b/test/client-post.js @@ -26,6 +26,11 @@ test('request post blob', async (t) => { const client = new Client(`http://localhost:${server.address().port}`) after(client.destroy.bind(client)) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.request({ path: '/', @@ -62,6 +67,11 @@ test('request post arrayBuffer', async (t) => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.destroy()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const buf = Buffer.from('asd') const dst = new ArrayBuffer(buf.byteLength) diff --git a/test/client-stream.js b/test/client-stream.js index 8428ae990db..24d64bf822c 100644 --- a/test/client-stream.js +++ b/test/client-stream.js @@ -22,6 +22,11 @@ test('stream get', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const signal = new EE() client.stream({ @@ -65,6 +70,11 @@ test('stream promise get', async (t) => { server.listen(0, async () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) await client.stream({ path: '/', @@ -254,6 +264,11 @@ test('stream waits only for writable side', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const pt = new PassThrough({ autoDestroy: false }) client.stream({ @@ -321,6 +336,11 @@ test('stream destroy if not readable', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(client.destroy.bind(client)) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.stream({ path: '/', @@ -397,6 +417,11 @@ test('stream body without destroy', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(client.destroy.bind(client)) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.stream({ path: '/', @@ -520,6 +545,11 @@ test('stream abort after complete', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(client.destroy.bind(client)) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const pt = new PassThrough() const signal = new EE() @@ -580,6 +610,11 @@ test('trailers', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) client.stream({ path: '/', @@ -605,6 +640,11 @@ test('stream ignore 1xx', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) let buf = '' client.stream({ @@ -637,6 +677,11 @@ test('stream ignore 1xx and use onInfo', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) let buf = '' client.stream({ @@ -675,6 +720,11 @@ test('stream backpressure', async (t) => { server.listen(0, () => { const client = new Client(`http://localhost:${server.address().port}`) after(() => client.close()) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) let buf = '' client.stream({ @@ -736,6 +786,11 @@ test('stream needDrain', async (t) => { after(() => { client.destroy() }) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const dst = new PassThrough() dst.pause() @@ -792,6 +847,11 @@ test('stream legacy needDrain', async (t) => { after(() => { client.destroy() }) + client.on('disconnect', () => { + if (!client.closed && !client.destroyed) { + t.fail('unexpected disconnect') + } + }) const dst = new PassThrough() dst.pause()