From d9491edc01d2b02c2ca062dbac91350696bf0050 Mon Sep 17 00:00:00 2001 From: Daniel Lando Date: Mon, 13 May 2024 15:07:23 +0200 Subject: [PATCH] fix: keepalive tests --- test/abstract_client.ts | 55 +++++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/test/abstract_client.ts b/test/abstract_client.ts index e2d5b8249..813c9f80e 100644 --- a/test/abstract_client.ts +++ b/test/abstract_client.ts @@ -1987,17 +1987,26 @@ export default function abstractTest(server, config, ports) { }) }) - client.once('connect', () => { - clock.tick(interval) - assert.strictEqual(spy.callCount, 1) + let pingReceived = 0 - clock.tick(interval) - assert.strictEqual(spy.callCount, 2) + client.on('packetreceive', (packet) => { + if (packet.cmd === 'pingresp') { + process.nextTick(() => { + pingReceived++ + assert.strictEqual(spy.callCount, pingReceived) - clock.tick(interval) - assert.strictEqual(spy.callCount, 3) + if (pingReceived === 3) { + client.end(true, done) + } else { + clock.tick(interval) + } + }) + clock.tick(1) + } + }) - client.end(true, done) + client.once('connect', () => { + clock.tick(interval) }) }) @@ -2067,22 +2076,26 @@ export default function abstractTest(server, config, ports) { client.on('packetreceive', (packet) => { if (packet.cmd === 'puback') { - clock.tick(intervalMs) + process.nextTick(() => { + clock.tick(intervalMs) - received++ + received++ - if (reschedulePings) { - assert.strictEqual( - spyReschedule.callCount, - received, - ) - } else { - assert.strictEqual(spyReschedule.callCount, 0) - } + if (reschedulePings) { + assert.strictEqual( + spyReschedule.callCount, + received, + ) + } else { + assert.strictEqual(spyReschedule.callCount, 0) + } - if (received === 2) { - client.end(true, done) - } + if (received === 2) { + client.end(true, done) + } + }) + + clock.tick(1) } })