feat(seeder): update MenuSeeder and tests to reflect new admin menu structure; change border color in WebsiteTypeSeeder

This commit is contained in:
2026-08-03 09:07:49 -03:00
parent dbeaf19513
commit f1df6a5918
4 changed files with 115 additions and 16 deletions

View File

@@ -24,14 +24,30 @@ class MenuSeederTest extends TestCase
$this->seed(MenuSeeder::class);
$expectedMenus = [
'admin.catalog' => ['Catálogo', '/admin/catalog'],
'admin.categories' => ['Categorías', '/admin/categories'],
'admin.combos' => ['Combos', '/admin/combos'],
'admin.event' => ['Eventos', '/admin/event'],
'admin.staff' => ['Staff', '/admin/staff'],
'admin.ventas' => ['Ventas', '/admin/ventas'],
'adminapp.catalog' => ['Catálogo', '/admin/catalog'],
'adminapp.categories' => ['Categorías', '/admin/categories'],
'adminapp.combos' => ['Combos', '/admin/combos'],
'adminapp.event' => ['Eventos', '/admin/event'],
'adminapp.staff' => ['Staff', '/admin/staff'],
'adminapp.ventas' => ['Ventas', '/admin/ventas'],
];
$adminApp = Menu::query()
->with('children')
->where('code', 'main.adminapp')
->firstOrFail();
$this->assertSame('Administración', $adminApp->label);
$this->assertSame(Menu::CONTENT_TYPE_DYNAMIC, $adminApp->content_type);
$this->assertSame('/', $adminApp->route);
$this->assertSame(
array_keys($expectedMenus),
$adminApp->children->pluck('code')->sort()->values()->all()
);
$this->assertTrue(
$tenant->menues()->where('menues.code', 'main.adminapp')->exists()
);
$adminMenus = Menu::query()
->whereIn('code', array_keys($expectedMenus))
->get()
@@ -42,10 +58,28 @@ class MenuSeederTest extends TestCase
foreach ($expectedMenus as $code => [$label, $route]) {
$this->assertSame($label, $adminMenus->get($code)?->label);
$this->assertSame($route, $adminMenus->get($code)?->route);
$this->assertSame('main.adminapp', $adminMenus->get($code)?->parent_menu_code);
$this->assertTrue(
$tenant->menues()->where('menues.code', $code)->exists()
);
}
$this->assertFalse(
Menu::query()->whereIn('code', [
'admin.event',
'admin.catalog',
'admin.combos',
'admin.categories',
'admin.ventas',
'admin.staff',
'event',
'catalog',
'combos',
'categories',
'ventas',
'staff',
])->exists()
);
}
public function test_it_assigns_menus_to_the_expected_roles(): void
@@ -57,8 +91,12 @@ class MenuSeederTest extends TestCase
->orderBy('code')
->pluck('code')
->all();
$adminAppMenuCodes = Menu::query()
->where('code', 'main.adminapp')
->orWhere('parent_menu_code', 'main.adminapp')
->pluck('code');
$userMenuCodes = Menu::query()
->where('code', 'not like', 'admin.%')
->whereNotIn('code', $adminAppMenuCodes)
->orderBy('code')
->pluck('code')
->all();
@@ -84,6 +122,8 @@ class MenuSeederTest extends TestCase
->all();
$this->assertSame($userMenuCodes, $userRoleMenuCodes);
$this->assertNotContains('main.adminapp', $userRoleMenuCodes);
$this->assertNotContains('adminapp.catalog', $userRoleMenuCodes);
$this->assertDatabaseCount(
'roles_menues',
(count($allMenuCodes) * 2) + count($userMenuCodes)

View File

@@ -33,7 +33,7 @@ class WebsiteTypeSeederTest extends TestCase
'darker_body_color' => '#333333',
'surface_color' => '#ffffff',
'background_color' => '#f8f8f8',
'border_color' => '#f8f8f8',
'border_color' => '#EAEAEA',
];
$shopIt = WebsiteType::query()