set('enhance.disk', 'public'); Storage::fake('public'); }); it('allows enhance source output and preview paths', function (): void { $service = app(EnhanceStorageService::class); expect($service->isEnhancePath('enhance/sources/1/source.png'))->toBeTrue(); expect($service->isEnhancePath('enhance/outputs/1/output.webp'))->toBeTrue(); expect($service->isEnhancePath('enhance/previews/1/preview.webp'))->toBeTrue(); }); it('rejects artwork random and null paths safely', function (): void { $service = app(EnhanceStorageService::class); Storage::disk('public')->put('uploads/artworks/original.png', 'unsafe'); Storage::disk('public')->put('random/file.txt', 'unsafe'); expect($service->isEnhancePath('uploads/artworks/original.png'))->toBeFalse(); expect($service->isEnhancePath('random/file.txt'))->toBeFalse(); expect($service->isEnhancePath(null))->toBeFalse(); expect($service->safeDelete('public', 'uploads/artworks/original.png'))->toBeFalse(); expect($service->safeDelete('public', 'random/file.txt'))->toBeFalse(); expect($service->safeDelete('public', null))->toBeFalse(); Storage::disk('public')->assertExists('uploads/artworks/original.png'); Storage::disk('public')->assertExists('random/file.txt'); }); it('lists known job paths', function (): void { $service = app(EnhanceStorageService::class); $owner = User::factory()->create(); EnhanceJob::query()->create([ 'user_id' => $owner->id, 'status' => EnhanceJob::STATUS_COMPLETED, 'engine' => EnhanceJob::ENGINE_STUB, 'mode' => 'standard', 'scale' => 2, 'source_path' => 'enhance/sources/known/source.png', 'output_path' => 'enhance/outputs/known/output.webp', 'preview_path' => 'enhance/previews/known/preview.webp', ]); expect($service->listKnownJobPaths())->toContain( 'enhance/sources/known/source.png', 'enhance/outputs/known/output.webp', 'enhance/previews/known/preview.webp', ); });