feat(preview): expose availability and handle missing services
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
This commit is contained in:
@@ -154,12 +154,7 @@ final class PreviewManagerTest extends TestCase
|
||||
$service = $this->createMock(SystemStoreServiceInterface::class);
|
||||
$service->expects(self::once())->method('stat')->willReturn(null);
|
||||
$logger = $this->createMock(LoggerInterface::class);
|
||||
$logger->expects(self::once())->method('warning')->with(
|
||||
'Preview unavailable',
|
||||
self::callback(static fn(array $context): bool =>
|
||||
($context['exception'] ?? null) instanceof PreviewGenerationException
|
||||
),
|
||||
);
|
||||
$logger->expects(self::never())->method('warning');
|
||||
|
||||
self::assertNull($this->manager(
|
||||
$provider,
|
||||
@@ -169,6 +164,50 @@ final class PreviewManagerTest extends TestCase
|
||||
)->fetch('tenant-a', $this->source()));
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function missingPreviewStorageIsUnavailableWithoutLoggingOrProviderLookup(): void
|
||||
{
|
||||
$provider = $this->provider();
|
||||
$provider->expects(self::never())->method('generate');
|
||||
$providerManager = $this->createMock(ProviderManager::class);
|
||||
$providerManager->expects(self::never())->method('providers');
|
||||
$service = $this->createMock(SystemStoreServiceInterface::class);
|
||||
$service->expects(self::never())->method('stat');
|
||||
$logger = $this->createMock(LoggerInterface::class);
|
||||
$logger->expects(self::never())->method('warning');
|
||||
|
||||
self::assertNull($this->manager(
|
||||
$provider,
|
||||
$service,
|
||||
new TenantConfiguration(),
|
||||
$providerManager,
|
||||
$logger,
|
||||
)->fetch('tenant-a', $this->source()));
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function reportsStorageAndGenerationAvailabilitySeparately(): void
|
||||
{
|
||||
$provider = $this->provider();
|
||||
$providerManager = $this->createMock(ProviderManager::class);
|
||||
$providerManager->expects(self::once())->method('providers')->willReturn([]);
|
||||
$logger = $this->createMock(LoggerInterface::class);
|
||||
$logger->expects(self::once())->method('debug')->with(
|
||||
'No preview generation provider is available',
|
||||
['tenantId' => 'tenant-a'],
|
||||
);
|
||||
|
||||
self::assertSame(
|
||||
['enabled' => true, 'storage' => true, 'generation' => false],
|
||||
$this->manager(
|
||||
$provider,
|
||||
$this->createStub(SystemStoreServiceInterface::class),
|
||||
providerManager: $providerManager,
|
||||
logger: $logger,
|
||||
)->availability('tenant-a'),
|
||||
);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function cacheKeysAreDeterministicOpaqueAndChangeWithSourceIdentity(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user