url('visual/og/og-default.jpg')) ->toStartWith('/storage/') ->not->toContain('http://localhost'); }); it('links seeded visual fixtures into public storage', function (): void { Artisan::call('storage:link', ['--force' => true]); Artisan::call('db:seed', ['--class' => VisualContentSeeder::class, '--force' => true]); $settings = SiteSetting::instance(); $path = (string) $settings->default_og_image_path; expect($path)->not->toBeEmpty() ->and(is_file(public_path('storage/'.$path)))->toBeTrue() ->and(mime_content_type(public_path('storage/'.$path)))->toBe('image/jpeg'); }); it('renders home media with same-origin storage urls', function (): void { Artisan::call('db:seed', ['--class' => VisualContentSeeder::class, '--force' => true]); $html = $this->get('/')->assertOk()->getContent(); expect($html) ->toContain('src="/storage/visual/') ->not->toContain('src="http://localhost/storage/'); });