feat(category-visibility): implement category visibility controller and service with update functionality

This commit is contained in:
2026-08-24 11:31:26 -03:00
parent bd6d672df2
commit 75d3c819d9
6 changed files with 169 additions and 0 deletions

View File

@@ -38,6 +38,45 @@ class EntryControllerTest extends TestCase
->assertUnauthorized();
}
public function test_category_visibility_can_be_read_and_updated_for_every_fiesta_menu(): void
{
$tenant = $this->createFiestaTenant();
$categories = [
'entries' => ['Entradas', 'adminapp.fiesta-futbol-infantil.entradas'],
'foods' => ['Comidas', 'adminapp.fiesta-futbol-infantil.comida'],
'accommodations' => ['Alojamientos', 'adminapp.fiesta-futbol-infantil.alojamientos'],
'merchandise' => ['Merchandising', 'adminapp.fiesta-futbol-infantil.merchandising'],
];
foreach ($categories as [$label, $menuCode]) {
$menu = Menu::query()->firstOrCreate(
['code' => $menuCode],
['label' => $label, 'route' => '/admin'],
);
$tenant->menues()->syncWithoutDetaching([$menu->code]);
}
Sanctum::actingAs($this->createAdminAppUser($tenant));
foreach ($categories as $endpoint => [$categoryName]) {
$this->getJson("/api/v1/adminapp/tenant/{$endpoint}/visibility")
->assertOk()
->assertJsonPath('data.is_enabled', true);
$this->patchJson("/api/v1/adminapp/tenant/{$endpoint}/visibility", [
'is_enabled' => false,
])
->assertOk()
->assertJsonPath('data.is_enabled', false);
$this->assertDatabaseHas('categorias', [
'tenant_code' => $tenant->codigo,
'nombre' => $categoryName,
'is_enabled' => false,
]);
}
}
public function test_it_creates_multiple_entries_with_dates_and_tracked_inventory(): void
{
$tenant = $this->createFiestaTenant();