major update
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Browser;
|
||||
|
||||
use Laravel\Dusk\Browser;
|
||||
use Tests\Browser\Concerns\CreatesWmsBrowserData;
|
||||
use Tests\Browser\Concerns\TestsResponsiveBreakpoints;
|
||||
use Tests\DuskTestCase;
|
||||
|
||||
class WmsResponsiveShellTest extends DuskTestCase
|
||||
{
|
||||
use CreatesWmsBrowserData;
|
||||
use TestsResponsiveBreakpoints;
|
||||
|
||||
public function test_shell_renders_correct_desktop_tablet_and_mobile_navigation(): void
|
||||
{
|
||||
$user = $this->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');
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user