From 88f779adb7b2e81d7fccc6d903e774f0617d10fb Mon Sep 17 00:00:00 2001 From: kafkiansky Date: Sat, 18 Apr 2026 16:01:20 +0300 Subject: [PATCH] Fix get unknown counter --- src/Internal/Rpc/Handler.php | 7 +++++-- tests/JetStream/Counter/CounterStoreTest.php | 10 ++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Internal/Rpc/Handler.php b/src/Internal/Rpc/Handler.php index 2d8936f..6ec0cc2 100644 --- a/src/Internal/Rpc/Handler.php +++ b/src/Internal/Rpc/Handler.php @@ -10,8 +10,8 @@ use Thesis\Nats\Client; use Thesis\Nats\Delivery; use Thesis\Nats\Exception\ConnectionWasClosed; +use Thesis\Nats\Exception\MessageNotFound; use Thesis\Nats\Exception\RequestHasNoResponders; -use Thesis\Nats\Header\StatusCode; use Thesis\Nats\Internal\Id; use Thesis\Nats\Message; use Thesis\Nats\Status; @@ -96,8 +96,11 @@ public function request( $deferred = new DeferredFuture(); $this->pendings[$replyTo->token] = new PendingRequest( handle: static function (Delivery $delivery) use ($deferred): void { - if ($delivery->message->headers?->get(StatusCode::Header) === Status::NoResponders) { + $status = $delivery->message->headers?->statusCode(); + if ($status === Status::NoResponders) { $deferred->error(new RequestHasNoResponders()); + } elseif ($status === Status::NoMessages) { + $deferred->error(new MessageNotFound()); } else { $deferred->complete($delivery); } diff --git a/tests/JetStream/Counter/CounterStoreTest.php b/tests/JetStream/Counter/CounterStoreTest.php index 0eb56eb..d4c35fc 100644 --- a/tests/JetStream/Counter/CounterStoreTest.php +++ b/tests/JetStream/Counter/CounterStoreTest.php @@ -63,4 +63,14 @@ public function testGetMultiple(): void $js->deleteCounter($name); } + + public function testGetUnknownCounter(): void + { + $js = $this->client()->jetStream(); + + $counter = $js->createOrUpdateCounter(new CounterConfig(name: $name = generateUniqueId(10))); + $entry = $counter->get('x'); + self::assertNull($entry); + $js->deleteCounter($name); + } }