Update admin PWA events, branding, and packages
This commit is contained in:
@@ -214,12 +214,16 @@ class EventControllerTest extends TenantTestCase
|
||||
$response = $this->authenticatedRequest('PUT', "/api/v1/tenant/events/{$event->slug}", [
|
||||
'settings' => [
|
||||
'engagement_mode' => 'photo_only',
|
||||
'guest_downloads_enabled' => false,
|
||||
'guest_sharing_enabled' => true,
|
||||
],
|
||||
]);
|
||||
|
||||
$response->assertOk();
|
||||
$event->refresh();
|
||||
$this->assertSame('photo_only', data_get($event->settings, 'engagement_mode'));
|
||||
$this->assertFalse((bool) data_get($event->settings, 'guest_downloads_enabled'));
|
||||
$this->assertTrue((bool) data_get($event->settings, 'guest_sharing_enabled'));
|
||||
}
|
||||
|
||||
public function test_create_event_rejects_unavailable_service_tier_for_partner_kontingent(): void
|
||||
@@ -299,6 +303,94 @@ class EventControllerTest extends TenantTestCase
|
||||
$this->assertSame('blur_last', data_get($settings, 'live_show.background_mode'));
|
||||
}
|
||||
|
||||
public function test_update_event_accepts_svg_watermark_data_url(): void
|
||||
{
|
||||
Storage::fake('public');
|
||||
|
||||
$eventType = EventType::factory()->create();
|
||||
$event = Event::factory()->for($this->tenant)->create([
|
||||
'event_type_id' => $eventType->id,
|
||||
'name' => 'SVG Watermark Event',
|
||||
'slug' => 'svg-watermark',
|
||||
'date' => now()->addDays(2),
|
||||
]);
|
||||
|
||||
$svg = '<svg xmlns="http://www.w3.org/2000/svg" width="40" height="20"></svg>';
|
||||
$dataUrl = 'data:image/svg+xml;base64,'.base64_encode($svg);
|
||||
|
||||
$response = $this->authenticatedRequest('PUT', "/api/v1/tenant/events/{$event->slug}", [
|
||||
'settings' => [
|
||||
'watermark' => [
|
||||
'mode' => 'custom',
|
||||
'asset_data_url' => $dataUrl,
|
||||
'position' => 'bottom-right',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
$response->assertOk();
|
||||
|
||||
$event->refresh();
|
||||
$path = data_get($event->settings, 'watermark.asset');
|
||||
$this->assertSame("branding/watermarks/event-{$event->id}.svg", $path);
|
||||
Storage::disk('public')->assertExists($path);
|
||||
}
|
||||
|
||||
public function test_show_event_includes_signed_watermark_asset_url(): void
|
||||
{
|
||||
Storage::fake('public');
|
||||
|
||||
$eventType = EventType::factory()->create();
|
||||
$event = Event::factory()->for($this->tenant)->create([
|
||||
'event_type_id' => $eventType->id,
|
||||
'name' => 'Watermark Preview Event',
|
||||
'slug' => 'watermark-preview',
|
||||
'date' => now()->addDays(2),
|
||||
'settings' => [
|
||||
'watermark' => [
|
||||
'mode' => 'custom',
|
||||
'asset' => 'branding/watermarks/event-123.png',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
Storage::disk('public')->put('branding/watermarks/event-123.png', 'asset');
|
||||
|
||||
$response = $this->authenticatedRequest('GET', "/api/v1/tenant/events/{$event->slug}");
|
||||
|
||||
$response->assertOk();
|
||||
$url = (string) $response->json('data.settings.watermark.asset_url');
|
||||
$this->assertNotSame('', $url);
|
||||
$this->assertStringContainsString('/api/v1/branding/asset/branding/watermarks/event-123.png', $url);
|
||||
$this->assertStringContainsString('signature=', $url);
|
||||
}
|
||||
|
||||
public function test_show_event_includes_base_watermark_asset_url_when_missing_settings(): void
|
||||
{
|
||||
Storage::fake('public');
|
||||
|
||||
config(['watermark.base.asset' => 'branding/watermarks/base-watermark.png']);
|
||||
Storage::disk('public')->put('branding/watermarks/base-watermark.png', 'asset');
|
||||
|
||||
$eventType = EventType::factory()->create();
|
||||
$event = Event::factory()->for($this->tenant)->create([
|
||||
'event_type_id' => $eventType->id,
|
||||
'name' => 'Base Watermark Preview',
|
||||
'slug' => 'base-watermark-preview',
|
||||
'date' => now()->addDays(2),
|
||||
'settings' => [],
|
||||
]);
|
||||
|
||||
$response = $this->authenticatedRequest('GET', "/api/v1/tenant/events/{$event->slug}");
|
||||
|
||||
$response->assertOk();
|
||||
$this->assertSame('base', $response->json('data.settings.watermark.mode'));
|
||||
$url = (string) $response->json('data.settings.watermark.asset_url');
|
||||
$this->assertNotSame('', $url);
|
||||
$this->assertStringContainsString('/api/v1/branding/asset/branding/watermarks/base-watermark.png', $url);
|
||||
$this->assertStringContainsString('signature=', $url);
|
||||
}
|
||||
|
||||
public function test_update_event_uploads_branding_logo_data_url(): void
|
||||
{
|
||||
Storage::fake('public');
|
||||
|
||||
Reference in New Issue
Block a user