diff --git a/app/Domains/Core/Tenant/Resources/TenantResource.php b/app/Domains/Core/Tenant/Resources/TenantResource.php index b4cf5da..4bd3c2e 100644 --- a/app/Domains/Core/Tenant/Resources/TenantResource.php +++ b/app/Domains/Core/Tenant/Resources/TenantResource.php @@ -2,14 +2,14 @@ namespace App\Domains\Core\Tenant\Resources; -use App\Shared\Attachable\Models\Attachment; -use App\Shared\Attachable\Models\AttachmentCrop; use App\Domains\Commerce\Catalog\Models\Category; -use App\Domains\Ticketing\Event\Models\EventDate; -use App\Domains\Ticketing\Event\Models\Event; -use App\Domains\Ticketing\Event\Services\EventDateInfoFormatter; use App\Domains\Core\Menu\Models\Menu; use App\Domains\Core\Tenant\Models\Tenant; +use App\Domains\Ticketing\Event\Models\Event; +use App\Domains\Ticketing\Event\Models\EventDate; +use App\Domains\Ticketing\Event\Services\EventDateInfoFormatter; +use App\Shared\Attachable\Models\Attachment; +use App\Shared\Attachable\Models\AttachmentCrop; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Collection; @@ -99,14 +99,19 @@ class TenantResource extends JsonResource 'menues', fn () => $this->menuTree($this->menues) ), - 'categories' => $this->storefront_website_type_code === 'onticket_multi_event' - ? $this->whenLoaded('eventCategories', fn () => $this->eventCategories + 'categories' => $this->when( + $this->storefront_website_type_code !== 'onticket_multi_event', + fn () => $this->whenLoaded('categories', fn () => $this->categoryTree($this->categories)) + ), + 'event_categories' => $this->when( + $this->storefront_website_type_code === 'onticket_multi_event', + fn () => $this->whenLoaded('eventCategories', fn () => $this->eventCategories ->map(fn ($category) => [ 'id' => $category->id, 'nombre' => $category->nombre, 'subcategories' => [], ])->values()) - : $this->whenLoaded('categories', fn () => $this->categoryTree($this->categories)), + ), ]; } diff --git a/tests/Feature/Tenant/BootstrapTenantControllerTest.php b/tests/Feature/Tenant/BootstrapTenantControllerTest.php index 73e364c..7ad8228 100644 --- a/tests/Feature/Tenant/BootstrapTenantControllerTest.php +++ b/tests/Feature/Tenant/BootstrapTenantControllerTest.php @@ -2,16 +2,16 @@ namespace Tests\Feature\Tenant; +use App\Domains\Commerce\Catalog\Models\Category; +use App\Domains\Core\Authorization\Enums\RoleCode; +use App\Domains\Core\Authorization\Models\Role; +use App\Domains\Core\Menu\Models\Menu; +use App\Domains\Core\Tenant\Models\AdminWebsiteType; +use App\Domains\Core\Tenant\Models\StorefrontWebsiteType; +use App\Domains\Core\Tenant\Models\Tenant; use App\Shared\Attachable\Enums\AttachmentType; use App\Shared\Attachable\Models\Attachment; use App\Shared\Attachable\Models\AttachmentCrop; -use App\Domains\Core\Authorization\Enums\RoleCode; -use App\Domains\Core\Authorization\Models\Role; -use App\Domains\Commerce\Catalog\Models\Category; -use App\Domains\Core\Menu\Models\Menu; -use App\Domains\Core\Tenant\Models\Tenant; -use App\Domains\Core\Tenant\Models\AdminWebsiteType; -use App\Domains\Core\Tenant\Models\StorefrontWebsiteType; use Database\Seeders\WebsiteTypeSeeder; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Http\UploadedFile; @@ -33,10 +33,11 @@ class BootstrapTenantControllerTest extends TestCase $this->getJson('/api/tenants/bootstrap?dominio=acme.com&path=%2F') ->assertOk() - ->assertJsonCount(1, 'data.categories') - ->assertJsonPath('data.categories.0.id', $eventCategory->id) - ->assertJsonPath('data.categories.0.nombre', 'Música') - ->assertJsonPath('data.categories.0.subcategories', []); + ->assertJsonMissingPath('data.categories') + ->assertJsonCount(1, 'data.event_categories') + ->assertJsonPath('data.event_categories.0.id', $eventCategory->id) + ->assertJsonPath('data.event_categories.0.nombre', 'Música') + ->assertJsonPath('data.event_categories.0.subcategories', []); } public function test_it_bootstraps_a_tenant_by_domain(): void