diff --git a/database/seeders/TenantSeeder.php b/database/seeders/TenantSeeder.php index 1882eed..474fe0b 100644 --- a/database/seeders/TenantSeeder.php +++ b/database/seeders/TenantSeeder.php @@ -120,6 +120,7 @@ class TenantSeeder extends Seeder 'extras' => [ 'heroConfig' => [ 'title_html' => '
Viví una jornada inolvidable de fútbol infantil.
', 'button_text' => 'Comprar entradas', 'button_href' => '/tickets', 'background_image_id' => $this->uploadedImage( @@ -145,7 +146,32 @@ class TenantSeeder extends Seeder ], ], 'additionalInfoConfig' => [ - 'description' => 'Viví una jornada inolvidable de fútbol infantil.
', + 'description' => <<<'HTML' +Viví una jornada inolvidable de fútbol infantil.
', + $heroConfig['description_html'], + ); $this->assertIsInt($heroConfig['background_image_id']); $this->assertDatabaseHas('attachments', [ 'id' => $heroConfig['background_image_id'], @@ -115,8 +118,13 @@ class TenantSeederTest extends TestCase ], ], $extras->get('eventConfig')->config); - $this->assertSame([ - 'description' => 'Viví una jornada inolvidable de fútbol infantil.
', - ], $extras->get('additionalInfoConfig')->config); + $additionalInfo = $extras->get('additionalInfoConfig')->config['description']; + + $this->assertStringContainsString('class="row g-4 text-start"', $additionalInfo); + $this->assertSame(2, substr_count($additionalInfo, 'class="col-12 col-md-6"')); + $this->assertStringContainsString('Menores y Accesos:', $additionalInfo); + $this->assertStringContainsString('Jugadores y Accesos:', $additionalInfo); + $this->assertStringContainsString('Elementos prohibidos:', $additionalInfo); + $this->assertStringContainsString('Entradas:', $additionalInfo); } } diff --git a/tests/Feature/Tenant/AdminAppWebsiteExtraControllerTest.php b/tests/Feature/Tenant/AdminAppWebsiteExtraControllerTest.php index 94f288f..7ce770e 100644 --- a/tests/Feature/Tenant/AdminAppWebsiteExtraControllerTest.php +++ b/tests/Feature/Tenant/AdminAppWebsiteExtraControllerTest.php @@ -170,6 +170,53 @@ class AdminAppWebsiteExtraControllerTest extends TestCase ); } + public function test_adminapp_user_saves_the_banner_description_in_the_hero_extra(): void + { + $heroDefinition = $this->websiteType->extras()->create([ + 'codigo' => 'heroConfig', + 'nombre' => 'Banner principal', + 'descripcion' => 'Configuración del banner principal.', + 'is_required' => false, + 'config_schema' => [ + 'request_rules' => [ + '$' => 'required|array', + 'title_html' => 'nullable|string', + 'description_html' => 'nullable|string', + 'button_text' => 'nullable|string', + 'button_href' => 'nullable|string', + 'background_image_id' => 'nullable|string', + ], + 'transforms' => [], + ], + ]); + $tenant = $this->createTenant('acme'); + + Sanctum::actingAs($this->createAdminAppUser($tenant)); + + $this->putJson('/api/v1/adminapp/tenant/website-extras/heroConfig', [ + 'config' => [ + 'title_html' => 'Nueva descripción del banner
', + 'button_text' => 'Comprar', + 'button_href' => '/tickets', + 'background_image_id' => null, + ], + ]) + ->assertOk() + ->assertJsonPath( + 'data.extras.heroConfig.description_html', + 'Nueva descripción del banner
' + ); + + $this->assertSame( + 'Nueva descripción del banner
', + $tenant->websiteExtras() + ->where('website_type_extra_id', $heroDefinition->id) + ->firstOrFail() + ->config['description_html'] + ); + } + public function test_update_returns_not_found_for_an_unsupported_extra_code(): void { $tenant = $this->createTenant('acme');