From cd511fd90b993dc0c9c6904c810fc2f617dcf422 Mon Sep 17 00:00:00 2001 From: Devin Ivy Date: Sat, 20 Mar 2021 14:18:11 -0400 Subject: [PATCH] Fix abort test timing to be consistent from node v12 through v16 --- test/request.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/test/request.js b/test/request.js index 5e1e61c85..c17db329d 100755 --- a/test/request.js +++ b/test/request.js @@ -512,7 +512,7 @@ describe('Request', () => { expect(info.remoteAddress).to.exist(); }); - it('handles aborted requests (pre response)', { retry: true }, async () => { + it('handles aborted requests (before response)', { retry: true }, async (flags) => { const server = Hapi.server(); server.route({ @@ -533,15 +533,26 @@ describe('Request', () => { server.ext('onRequest', onRequest); - const onPreHandler = (request, h) => { + let firstRequest = true; + const onPreHandler = async (request, h) => { + + if (firstRequest) { + client.destroy(); + firstRequest = false; + } + else { + // To avoid timing differences between node versions, ensure that + // the second and third requests always experience the disconnect + await team.work; + } - client.destroy(); return h.continue; }; server.ext('onPreHandler', onPreHandler); await server.start(); + flags.onCleanup = () => server.stop(); const client = Net.connect(server.info.port, () => { @@ -553,7 +564,7 @@ describe('Request', () => { await team.work; await server.stop(); - expect(codes).to.equal([204, 204, 499]); + expect(codes).to.equal([204, 499, 499]); }); it('returns empty params array when none present', async () => {