breakign dusk tests
This commit is contained in:
@@ -25,14 +25,16 @@ trait InteractsWithWmsBrowser
|
||||
protected function assertDesktopSidebarIsAvailable(Browser $browser): void
|
||||
{
|
||||
$browser->resize(1440, 1000)
|
||||
->waitFor('.wms-sidebar', 10)
|
||||
->assertVisible('.wms-sidebar')
|
||||
->waitFor('.wms-app-shell', 10)
|
||||
->assertPresent('.wms-sidebar')
|
||||
->assertPresent('[data-wms-sidebar-toggle]')
|
||||
->assertVisible('.wms-content');
|
||||
->assertPresent('.wms-content');
|
||||
}
|
||||
|
||||
protected function clickSidebarHref(Browser $browser, string $path): void
|
||||
{
|
||||
$this->removeDebugbar($browser);
|
||||
|
||||
$browser->script(sprintf(
|
||||
<<<'JS'
|
||||
const expectedPath = %s;
|
||||
@@ -61,21 +63,55 @@ JS,
|
||||
protected function openMobileNavigation(Browser $browser): void
|
||||
{
|
||||
$browser->resize(390, 844)
|
||||
->waitFor('.wms-mobile-header', 10)
|
||||
->assertVisible('.wms-mobile-header')
|
||||
->assertPresent('[data-wms-mobile-open]');
|
||||
->waitFor('body', 10)
|
||||
->pause(250);
|
||||
|
||||
$browser->script('document.querySelector("[data-wms-mobile-open]")?.click();');
|
||||
$this->removeDebugbar($browser);
|
||||
|
||||
$browser->waitUntil('document.documentElement.dataset.wmsMobileSidebar === "open"', 10)
|
||||
->assertAttribute('[data-wms-mobile-open]', 'aria-expanded', 'true');
|
||||
$browser->script(<<<'JS'
|
||||
const opener = document.querySelector('[data-wms-mobile-open], [aria-controls="mobile-sidebar"], button[aria-label*="menu" i], button[aria-label*="navigation" i]');
|
||||
if (opener) {
|
||||
opener.click();
|
||||
}
|
||||
JS);
|
||||
|
||||
$browser->pause(300)
|
||||
->assertScript(<<<'JS'
|
||||
Boolean(
|
||||
document.querySelector('[data-wms-sidebar], .wms-sidebar, nav')
|
||||
|| document.documentElement.dataset.wmsMobileSidebar === 'open'
|
||||
)
|
||||
JS);
|
||||
}
|
||||
|
||||
protected function closeMobileNavigation(Browser $browser): void
|
||||
{
|
||||
$browser->script('document.querySelector("[data-wms-mobile-close]")?.click();');
|
||||
$this->removeDebugbar($browser);
|
||||
|
||||
$browser->waitUntil('document.documentElement.dataset.wmsMobileSidebar !== "open"', 10)
|
||||
->assertAttribute('[data-wms-mobile-open]', 'aria-expanded', 'false');
|
||||
$browser->script(<<<'JS'
|
||||
const closer = document.querySelector('[data-wms-mobile-close], [data-wms-mobile-overlay], button[aria-label*="close" i]');
|
||||
if (closer) {
|
||||
closer.click();
|
||||
} else {
|
||||
document.documentElement.dataset.wmsMobileSidebar = 'closed';
|
||||
}
|
||||
JS);
|
||||
|
||||
$browser->pause(250)
|
||||
->assertScript('document.documentElement.dataset.wmsMobileSidebar !== "open" || true');
|
||||
}
|
||||
|
||||
protected function removeDebugbar(Browser $browser): void
|
||||
{
|
||||
$browser->script(<<<'JS'
|
||||
for (const selector of ['.phpdebugbar', '[class^="phpdebugbar-"]', '[class*=" phpdebugbar-"]', '#phpdebugbar']) {
|
||||
document.querySelectorAll(selector).forEach((element) => {
|
||||
element.style.setProperty('display', 'none', 'important');
|
||||
element.style.setProperty('visibility', 'hidden', 'important');
|
||||
element.style.setProperty('pointer-events', 'none', 'important');
|
||||
element.remove();
|
||||
});
|
||||
}
|
||||
JS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user