From bc0a9b5c588efcb81faefaca620b6d9b1f2e4e7e Mon Sep 17 00:00:00 2001 From: nico-kn Date: Tue, 9 Dec 2025 09:58:36 +0100 Subject: [PATCH 1/4] fix(WaitForProcessing): change entry condition --- src/subscriber.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/subscriber.ts b/src/subscriber.ts index c12996862..d4ec0cc15 100644 --- a/src/subscriber.ts +++ b/src/subscriber.ts @@ -1000,7 +1000,7 @@ export class Subscriber extends EventEmitter { const shutdownStart = Date.now(); if ( behavior === SubscriberCloseBehaviors.WaitForProcessing && - !this._inventory.isEmpty + !this._inventory.isEmpty() ) { const waitTimeout = timeout.subtract(FINAL_NACK_TIMEOUT); From 843d7bd70c5ad2a2cbcc10e6147bf76744b59027 Mon Sep 17 00:00:00 2001 From: Nicolas Knauber Date: Tue, 9 Dec 2025 15:59:48 +0100 Subject: [PATCH 2/4] fix unit test to overwrite isEmpty() as a method instead of a getter --- test/subscriber.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/subscriber.ts b/test/subscriber.ts index 4e6917b15..fce888a4e 100644 --- a/test/subscriber.ts +++ b/test/subscriber.ts @@ -106,7 +106,7 @@ class FakeLeaseManager extends EventEmitter { remove(message: s.Message): void {} _isEmpty = true; - get isEmpty() { + isEmpty(): boolean { return this._isEmpty; } } From e4c93a81153394fb7e88d587b6afef1de2126bde Mon Sep 17 00:00:00 2001 From: Nicolas Knauber Date: Wed, 10 Dec 2025 14:10:12 +0100 Subject: [PATCH 3/4] add fired events to docstrings --- src/lease-manager.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lease-manager.ts b/src/lease-manager.ts index fdc0de141..32b1102cc 100644 --- a/src/lease-manager.ts +++ b/src/lease-manager.ts @@ -106,6 +106,8 @@ export class LeaseManager extends EventEmitter { * Adds a message to the inventory, kicking off the deadline extender if it * isn't already running. * + * @fires LeaseManager#full + * * @param {Message} message The message. * @private */ @@ -141,6 +143,10 @@ export class LeaseManager extends EventEmitter { } /** * Removes ALL messages from inventory, and returns the ones removed. + * + * @fires LeaseManager#free + * @fires LeaseManager#empty + * * @private */ clear(): Message[] { @@ -197,6 +203,7 @@ export class LeaseManager extends EventEmitter { * messages are left over. * * @fires LeaseManager#free + * @fires LeaseManager#empty * * @param {Message} message The message to remove. * @private From d0c7096abc16d493021a276be6a944b8f5f427e4 Mon Sep 17 00:00:00 2001 From: feywind <57276408+feywind@users.noreply.github.com> Date: Fri, 19 Dec 2025 16:49:21 -0500 Subject: [PATCH 4/4] tests: fix two system-test bugs with one scone --- system-test/pubsub.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/system-test/pubsub.ts b/system-test/pubsub.ts index 82bff2aa3..6bdde2a6f 100644 --- a/system-test/pubsub.ts +++ b/system-test/pubsub.ts @@ -429,8 +429,8 @@ describe('pubsub', () => { const SUB_NAMES = [generateSubName(), generateSubName()]; const SUB_DETACH_NAME = generateSubForDetach(); - const thirty = Duration.from({minutes: 30}); - const sixty = Duration.from({minutes: 60}); + const thirty = Duration.from({seconds: 30}); + const sixty = Duration.from({seconds: 60}); const SUBSCRIPTIONS = [ topic.subscription(SUB_NAMES[0], {minAckDeadline: thirty, maxAckDeadline: thirty}), topic.subscription(SUB_NAMES[1], {minAckDeadline: sixty, maxAckDeadline: sixty}), @@ -660,8 +660,9 @@ describe('pubsub', () => { subscription.on('error', done); // eslint-disable-next-line @typescript-eslint/no-explicit-any - subscription.on('message', (message: {data: any}) => { + subscription.on('message', message => { assert.deepStrictEqual(message.data, Buffer.from('hello')); + message.ack(); if (++messageCount === 10) { subscription.close(done);