feat(seeder): update MenuSeeder and tests to reflect new admin menu structure; change border color in WebsiteTypeSeeder
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user