diff --git a/src/bundle/EventSubscriber/SendMessageSiteAccessSubscriber.php b/src/bundle/EventSubscriber/SendMessageSiteAccessSubscriber.php index 26d21d1..c904109 100644 --- a/src/bundle/EventSubscriber/SendMessageSiteAccessSubscriber.php +++ b/src/bundle/EventSubscriber/SendMessageSiteAccessSubscriber.php @@ -9,6 +9,7 @@ namespace Ibexa\Bundle\Messenger\EventSubscriber; use Ibexa\Contracts\Messenger\Stamp\SiteAccessStamp; +use Ibexa\Core\MVC\Symfony\SiteAccess; use Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessServiceInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Messenger\Event\SendMessageToTransportsEvent; @@ -33,7 +34,7 @@ public static function getSubscribedEvents(): array public function onSendMessageToTransport(SendMessageToTransportsEvent $event): void { $siteAccess = $this->siteAccessService->getCurrent(); - if ($siteAccess === null) { + if ($siteAccess === null || $siteAccess->matchingType === SiteAccess::MATCHING_TYPE_UNINITIALIZED) { return; } diff --git a/tests/bundle/EventSubscriber/SendMessageSiteAccessSubscriberTest.php b/tests/bundle/EventSubscriber/SendMessageSiteAccessSubscriberTest.php index f90e977..fb2e56b 100644 --- a/tests/bundle/EventSubscriber/SendMessageSiteAccessSubscriberTest.php +++ b/tests/bundle/EventSubscriber/SendMessageSiteAccessSubscriberTest.php @@ -74,4 +74,23 @@ public function testOnSendMessageToTransportDoesNothingWhenNoSiteAccess(): void self::assertNull($updatedEnvelope->last(SiteAccessStamp::class)); self::assertSame($envelope, $updatedEnvelope); } + + public function testOnSendMessageToTransportDoesNothingWhenSiteAccessIsUninitialized(): void + { + $siteAccess = new SiteAccess('default', SiteAccess::MATCHING_TYPE_UNINITIALIZED); + $envelope = new Envelope(new \stdClass()); + $event = new SendMessageToTransportsEvent($envelope); + + $this->siteAccessService + ->expects(self::once()) + ->method('getCurrent') + ->willReturn($siteAccess); + + $this->subscriber->onSendMessageToTransport($event); + + $updatedEnvelope = $event->getEnvelope(); + + self::assertNull($updatedEnvelope->last(SiteAccessStamp::class)); + self::assertSame($envelope, $updatedEnvelope); + } }