createPlatformAdmin([ 'name' => 'Mark Gregory', 'email' => 'mark.gregory@example.test', ]); $this->browse(function (Browser $browser) use ($user): void { $browser->loginAs($user)->visitRoute('dashboard'); $this->eachBreakpoint($browser, function (Browser $browser, string $breakpoint): void { $browser ->assertPresent('[data-wms-shell]') ->assertPresent('[data-wms-sidebar]') ->assertSee('Warehouse Management System') ->assertSee('MPBA') ->assertSee('Warehouses') ->assertSee('Validation Rules') ->assertSee('Platform Admin') ->assertSee('Mark Gregory'); if ($this->isMobileNavigationBreakpoint($breakpoint)) { $browser ->assertVisible('[data-wms-mobile-open]') ->assertScript("document.documentElement.dataset.wmsMobileSidebar || 'closed'", 'closed') ->click('[data-wms-mobile-open]') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'open'") ->assertScript("document.documentElement.dataset.wmsMobileSidebar", 'open') ->click('[data-wms-mobile-close]') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'closed'") ->assertScript("document.documentElement.dataset.wmsMobileSidebar", 'closed'); } else { $browser->assertVisible('[data-wms-sidebar-toggle]'); } }); }); } public function test_desktop_sidebar_collapses_expands_and_persists_state(): void { $user = $this->createPlatformAdmin(); $this->browse(function (Browser $browser) use ($user): void { $browser ->resize(1440, 900) ->loginAs($user) ->visitRoute('dashboard') ->script("localStorage.removeItem('wms-sidebar-state'); document.documentElement.dataset.wmsSidebar = 'expanded';"); $browser ->refresh() ->waitFor('[data-wms-sidebar-toggle]') ->assertScript("document.documentElement.dataset.wmsSidebar", 'expanded') ->click('[data-wms-sidebar-toggle]') ->waitUntil("document.documentElement.dataset.wmsSidebar === 'collapsed'") ->assertScript("localStorage.getItem('wms-sidebar-state')", 'collapsed') ->assertAttribute('[data-wms-sidebar-toggle]', 'aria-expanded', 'false') ->refresh() ->waitFor('[data-wms-sidebar-toggle]') ->assertScript("document.documentElement.dataset.wmsSidebar", 'collapsed') ->click('[data-wms-sidebar-toggle]') ->waitUntil("document.documentElement.dataset.wmsSidebar === 'expanded'") ->assertScript("localStorage.getItem('wms-sidebar-state')", 'expanded') ->assertAttribute('[data-wms-sidebar-toggle]', 'aria-expanded', 'true'); }); } public function test_mobile_overlay_and_navigation_link_close_the_menu(): void { $user = $this->createPlatformAdmin(); $this->browse(function (Browser $browser) use ($user): void { $browser ->resize(390, 844) ->loginAs($user) ->visitRoute('dashboard') ->waitFor('[data-wms-mobile-open]') ->click('[data-wms-mobile-open]') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'open'") ->click('[data-wms-mobile-close]') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'closed'") ->click('[data-wms-mobile-open]') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'open'") ->clickLink('Warehouses') ->waitForLocation('/warehouses') ->waitUntil("document.documentElement.dataset.wmsMobileSidebar === 'closed'") ->assertSee('Warehouses'); }); } }