platformAdminUser(); $this->seedPlatformDashboardData(); $this->browse(function (Browser $browser) use ($admin): void { $browser->loginAs($admin) ->visit('/admin'); $this->assertDesktopSidebarIsAvailable($browser); foreach ([ 'Platform', 'Analytics', 'Inventory', 'Replenishment', 'Shipping', 'Transportation', 'Carriers', 'M3 Integration', 'Sentinel', 'Documents', 'Reporting', 'Warehouses', 'Validation Rules', 'Pricing', 'Configuration', 'Security', 'Audit', 'Companies', 'Licences', 'Payments', 'Prices', ] as $label) { $browser->assertSee($label); } }); } public function test_desktop_sidebar_collapse_and_brand_expand_preserve_navigation(): void { $admin = $this->platformAdminUser(); $this->browse(function (Browser $browser) use ($admin): void { $browser->loginAs($admin) ->resize(1440, 1000) ->visit('/admin') ->waitFor('.wms-sidebar') ->click('[data-wms-sidebar-toggle]') ->pause(250) ->assertScript('document.querySelector("[data-wms-shell]").classList.contains("is-sidebar-collapsed")') ->assertPresent('[data-wms-brand-toggle]') ->click('[data-wms-brand-toggle]') ->pause(250) ->assertScript('! document.querySelector("[data-wms-shell]").classList.contains("is-sidebar-collapsed")') ->clickLink('Analytics') ->waitForLocation('/analytics') ->assertSee('Analytics'); }); } /** * @dataProvider navigatorRoutes */ public function test_every_desktop_navigator_page_has_one_professional_header(string $path, string $title): void { $admin = $this->platformAdminUser(); $this->seedPlatformDashboardData(); $this->browse(function (Browser $browser) use ($admin, $path, $title): void { $browser->loginAs($admin) ->resize(1440, 1000) ->visit($path) ->waitFor('.wms-page-hero', 5); $this->assertSingleProfessionalHeader($browser, $title); $browser->assertVisible('.wms-sidebar'); }); } /** * @return array */ public static function navigatorRoutes(): array { return [ 'platform' => ['/admin', 'Platform'], 'platform pricing' => ['/platform/pricing', 'Pricing'], 'companies' => ['/admin/companies', 'Companies'], 'licences' => ['/admin/licenses', 'Licence Keys'], 'payments' => ['/admin/payments', 'Payments'], 'price crud' => ['/admin/prices', 'Platform Prices'], 'warehouse dashboard' => ['/dashboard', 'Warehouse'], 'warehouses' => ['/warehouses', 'Warehouses'], 'validation rules' => ['/warehouse-rules', 'Validation Rules'], 'analytics' => ['/analytics', 'Analytics'], 'inventory' => ['/inventory-management', 'Inventory'], 'replenishment' => ['/replenishment', 'Replenishment'], 'shipping' => ['/shipping', 'Shipping'], 'transportation' => ['/transportation', 'Transportation'], 'carriers' => ['/carrier-management', 'Carriers'], 'm3' => ['/m3-integration', 'M3 Integration'], 'sentinel' => ['/sentinel-integration', 'Sentinel'], 'documents' => ['/document-archive', 'Documents'], 'reporting' => ['/reporting', 'Reporting'], 'configuration' => ['/configuration', 'Configuration'], 'security' => ['/security', 'Security'], 'audit' => ['/audit', 'Audit'], ]; } }