Skip to content

Commit e95683a

Browse files
authored
Fix abort test timing to be consistent from node v12 through v16 (hapijs#4239)
1 parent 0e71bf4 commit e95683a

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

test/request.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ describe('Request', () => {
512512
expect(info.remoteAddress).to.exist();
513513
});
514514

515-
it('handles aborted requests (pre response)', { retry: true }, async () => {
515+
it('handles aborted requests (before response)', { retry: true }, async (flags) => {
516516

517517
const server = Hapi.server();
518518
server.route({
@@ -533,15 +533,26 @@ describe('Request', () => {
533533

534534
server.ext('onRequest', onRequest);
535535

536-
const onPreHandler = (request, h) => {
536+
let firstRequest = true;
537+
const onPreHandler = async (request, h) => {
538+
539+
if (firstRequest) {
540+
client.destroy();
541+
firstRequest = false;
542+
}
543+
else {
544+
// To avoid timing differences between node versions, ensure that
545+
// the second and third requests always experience the disconnect
546+
await team.work;
547+
}
537548

538-
client.destroy();
539549
return h.continue;
540550
};
541551

542552
server.ext('onPreHandler', onPreHandler);
543553

544554
await server.start();
555+
flags.onCleanup = () => server.stop();
545556

546557
const client = Net.connect(server.info.port, () => {
547558

@@ -553,7 +564,7 @@ describe('Request', () => {
553564
await team.work;
554565
await server.stop();
555566

556-
expect(codes).to.equal([204, 204, 499]);
567+
expect(codes).to.equal([204, 499, 499]);
557568
});
558569

559570
it('returns empty params array when none present', async () => {

0 commit comments

Comments
 (0)