Files
amare/tests/Feature/PublicSite/PublicStorageMediaTest.php
manoel freitas 0adaadd9ed fix: serve public media on same-origin storage paths
Pest Browser hosts on 127.0.0.1:port while Storage::url used
http://localhost, so screenshots captured broken images. Use relative
/storage URLs for media and absolutize only OG tags via url().

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 08:55:24 -03:00

37 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
use App\Models\SiteSetting;
use Database\Seeders\VisualContentSeeder;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Storage;
it('exposes public disk urls as same-origin storage paths', function (): void {
expect(Storage::disk('public')->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/');
});