breakign dusk tests

This commit is contained in:
Mark Gregory
2026-06-19 12:28:03 +01:00
parent e21c09a005
commit ac694f8aae
26 changed files with 43 additions and 12 deletions
@@ -11,6 +11,7 @@
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
@yield('content') @yield('content')
{{-- Laravel Mix - JS File --}} {{-- Laravel Mix - JS File --}}
@@ -11,6 +11,7 @@
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
@yield('content') @yield('content')
{{-- Laravel Mix - JS File --}} {{-- Laravel Mix - JS File --}}
@@ -25,6 +25,7 @@
</script> </script>
<body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100"> <body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<style> <style>
:root { :root {
--wms-sidebar-width: 288px; --wms-sidebar-width: 288px;
@@ -7,7 +7,7 @@
$visibleCommentCount = $ticket->comments->count(); $visibleCommentCount = $ticket->comments->count();
@endphp @endphp
<div class="hd-helpdesk-surface space-y-6" dusk="helpdesk-ticket-show"> <div data-dusk="helpdesk-ticket-show" dusk="helpdesk-ticket-show" class="hd-helpdesk-surface space-y-6">
<div class="overflow-hidden rounded-3xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900"> <div class="overflow-hidden rounded-3xl border border-zinc-200 bg-white shadow-sm dark:border-zinc-700 dark:bg-zinc-900">
<div class="bg-gradient-to-br from-slate-950 via-slate-900 to-blue-950 px-6 py-7 text-white"> <div class="bg-gradient-to-br from-slate-950 via-slate-900 to-blue-950 px-6 py-7 text-white">
<div class="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between"> <div class="flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between">
@@ -285,7 +285,7 @@
<button type="button" data-helpdesk-block="code" class="rounded-lg border px-2 py-1 text-xs">Code</button> <button type="button" data-helpdesk-block="code" class="rounded-lg border px-2 py-1 text-xs">Code</button>
</div> </div>
<div id="ticket-comment-body-editor" dusk="ticket-comment-editor" contenteditable="true" role="textbox" aria-multiline="true" data-helpdesk-rich-editor data-helpdesk-sync-target="ticket-comment-body" class="block min-h-[20rem] w-full rounded-[1.5rem] border border-zinc-300 bg-white p-6 text-base leading-8 text-zinc-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 prose max-w-none dark:prose-invert">{!! $oldCommentBody !!}</div> <div id="ticket-comment-body-editor" dusk="ticket-comment-editor" contenteditable="true" role="textbox" aria-multiline="true" data-helpdesk-rich-editor data-helpdesk-sync-target="ticket-comment-body" class="block min-h-[20rem] w-full rounded-[1.5rem] border border-zinc-300 bg-white p-6 text-base leading-8 text-zinc-900 shadow-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-500 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100 prose max-w-none dark:prose-invert">{!! $oldCommentBody !!}</div>
<textarea id="ticket-comment-body" name="commentBody" required class="sr-only" tabindex="-1" aria-hidden="true">{{ $oldCommentBody }}</textarea> <textarea dusk="comment-body" data-dusk="comment-body" id="ticket-comment-body" name="commentBody" required class="sr-only" tabindex="-1" aria-hidden="true">{{ $oldCommentBody }}</textarea>
</div> </div>
@can('update', $ticket) @can('update', $ticket)
@@ -727,7 +727,7 @@
@endforelse @endforelse
</select> </select>
@error('agent_id') <p class="text-sm font-bold text-red-600 dark:text-red-400">{{ $message }}</p> @enderror @error('agent_id') <p class="text-sm font-bold text-red-600 dark:text-red-400">{{ $message }}</p> @enderror
<button type="submit" dusk="update-agent" class="inline-flex items-center justify-center rounded-lg bg-emerald-600 px-3 py-2 text-xs font-black text-white shadow-sm transition hover:bg-emerald-700 focus:outline-none focus:ring-2 focus:ring-emerald-400/70"> <button dusk="post-comment" data-dusk="post-comment" type="submit" dusk="update-agent" class="inline-flex items-center justify-center rounded-lg bg-emerald-600 px-3 py-2 text-xs font-black text-white shadow-sm transition hover:bg-emerald-700 focus:outline-none focus:ring-2 focus:ring-emerald-400/70">
<i class="fa-solid fa-user-check mr-2" aria-hidden="true"></i> <i class="fa-solid fa-user-check mr-2" aria-hidden="true"></i>
<span>Assign agent</span> <span>Assign agent</span>
</button> </button>
@@ -25,6 +25,7 @@
</script> </script>
<body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100"> <body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<style> <style>
:root { :root {
--wms-sidebar-width: 288px; --wms-sidebar-width: 288px;
@@ -11,6 +11,7 @@
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
@yield('content') @yield('content')
{{-- Laravel Mix - JS File --}} {{-- Laravel Mix - JS File --}}
@@ -25,6 +25,7 @@
</script> </script>
<body class="h-screen min-h-screen overflow-hidden bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100"> <body class="h-screen min-h-screen overflow-hidden bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<style> <style>
:root { :root {
--wms-sidebar-width: 288px; --wms-sidebar-width: 288px;
@@ -25,6 +25,7 @@
</script> </script>
<body class="h-screen min-h-screen overflow-hidden bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100"> <body class="h-screen min-h-screen overflow-hidden bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
@vite(['resources/css/app.css']) @vite(['resources/css/app.css'])
+1
View File
@@ -42,6 +42,7 @@
</style> </style>
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="flex-center position-ref full-height"> <div class="flex-center position-ref full-height">
<div class="content"> <div class="content">
<div class="title"> <div class="title">
+1
View File
@@ -17,6 +17,7 @@
</style> </style>
</head> </head>
<body class="antialiased bg-white text-black"> <body class="antialiased bg-white text-black">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="relative flex items-top justify-center min-h-screen bg-white text-black sm:items-center sm:pt-0" role="main"> <div class="relative flex items-top justify-center min-h-screen bg-white text-black sm:items-center sm:pt-0" role="main">
<div class="max-w-xl mx-auto sm:px-6 lg:px-8"> <div class="max-w-xl mx-auto sm:px-6 lg:px-8">
<div class="flex items-center pt-8 sm:justify-start sm:pt-0"> <div class="flex items-center pt-8 sm:justify-start sm:pt-0">
@@ -4,6 +4,7 @@
@include('partials.head') @include('partials.head')
<body class="min-h-screen bg-white dark:bg-zinc-800"> <body class="min-h-screen bg-white dark:bg-zinc-800">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<flux:header container class="border-b border-zinc-200 bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900"> <flux:header container class="border-b border-zinc-200 bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900">
<flux:sidebar.toggle class="lg:hidden mr-2" icon="bars-2" inset="left" /> <flux:sidebar.toggle class="lg:hidden mr-2" icon="bars-2" inset="left" />
@@ -25,6 +25,7 @@
</script> </script>
<body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100"> <body class="min-h-screen bg-white font-sans text-zinc-950 antialiased dark:bg-zinc-950 dark:text-zinc-100">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
@vite(['resources/css/app.css']) @vite(['resources/css/app.css'])
@@ -4,6 +4,7 @@
@include('partials.head') @include('partials.head')
</head> </head>
<body class="min-h-screen bg-neutral-100 antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900"> <body class="min-h-screen bg-neutral-100 antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="bg-muted flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10"> <div class="bg-muted flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10">
<div class="flex w-full max-w-md flex-col gap-6"> <div class="flex w-full max-w-md flex-col gap-6">
<a href="{{ route('home') }}" class="flex flex-col items-center gap-2 font-medium" wire:navigate> <a href="{{ route('home') }}" class="flex flex-col items-center gap-2 font-medium" wire:navigate>
@@ -4,6 +4,7 @@
@include('partials.head') @include('partials.head')
</head> </head>
<body class="min-h-screen bg-white antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900"> <body class="min-h-screen bg-white antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="bg-background flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10"> <div class="bg-background flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10">
<div class="flex w-full max-w-sm flex-col gap-2"> <div class="flex w-full max-w-sm flex-col gap-2">
<a href="{{ route('home') }}" class="flex flex-col items-center gap-2 font-medium" wire:navigate> <a href="{{ route('home') }}" class="flex flex-col items-center gap-2 font-medium" wire:navigate>
@@ -4,6 +4,7 @@
@include('partials.head') @include('partials.head')
</head> </head>
<body class="min-h-screen bg-white antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900"> <body class="min-h-screen bg-white antialiased dark:bg-linear-to-b dark:from-neutral-950 dark:to-neutral-900">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="relative grid h-dvh flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0"> <div class="relative grid h-dvh flex-col items-center justify-center px-8 sm:px-0 lg:max-w-none lg:grid-cols-2 lg:px-0">
<div class="bg-muted relative hidden h-full flex-col p-10 text-white lg:flex dark:border-e dark:border-neutral-800"> <div class="bg-muted relative hidden h-full flex-col p-10 text-white lg:flex dark:border-e dark:border-neutral-800">
<div class="absolute inset-0 bg-neutral-900"></div> <div class="absolute inset-0 bg-neutral-900"></div>
+1
View File
@@ -44,6 +44,7 @@
@vite(['resources/css/app.css']) @vite(['resources/css/app.css'])
</head> </head>
<body class="font-sans antialiased bg-background text-foreground"> <body class="font-sans antialiased bg-background text-foreground">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<div class="min-h-screen flex items-center justify-center p-4"> <div class="min-h-screen flex items-center justify-center p-4">
<div class="w-full max-w-md"> <div class="w-full max-w-md">
<!-- Card Container --> <!-- Card Container -->
+1
View File
@@ -13,6 +13,7 @@
</style> </style>
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<table class="table table-bordered table-condensed table-striped"> <table class="table table-bordered table-condensed table-striped">
@foreach($data as $row) @foreach($data as $row)
@if ($loop->first) @if ($loop->first)
@@ -127,7 +127,8 @@
<body <body
{{ {{
$attributes $attributes
->merge($livewire?->getExtraBodyAttributes() ?? [], escape: false) ->
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>merge($livewire?->getExtraBodyAttributes() ?? [], escape: false)
->class([ ->class([
'fi-body', 'fi-body',
'fi-panel-' . filament()->getId(), 'fi-panel-' . filament()->getId(),
+1
View File
@@ -26,6 +26,7 @@ width: 100% !important;
{!! $head ?? '' !!} {!! $head ?? '' !!}
</head> </head>
<body> <body>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation"> <table class="wrapper" width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr> <tr>
+1
View File
@@ -16,6 +16,7 @@
{{ $head ?? '' }} {{ $head ?? '' }}
</head> </head>
<body {{ $attributes }}> <body {{ $attributes }}>
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
{{ $slot }} {{ $slot }}
</body> </body>
</html> </html>
+1
View File
@@ -29,6 +29,7 @@
</style> </style>
</head> </head>
<body class="bg-[#FDFDFC] dark:bg-[#0a0a0a] text-[#1b1b18] flex p-6 lg:p-8 items-center lg:justify-center min-h-screen flex-col"> <body class="bg-[#FDFDFC] dark:bg-[#0a0a0a] text-[#1b1b18] flex p-6 lg:p-8 items-center lg:justify-center min-h-screen flex-col">
<div data-dusk="page-ready" style="position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);" aria-hidden="true"></div>
<header class="w-full lg:max-w-4xl max-w-[335px] text-sm mb-6 not-has-[nav]:hidden"> <header class="w-full lg:max-w-4xl max-w-[335px] text-sm mb-6 not-has-[nav]:hidden">
@if (Route::has('login')) @if (Route::has('login'))
<nav class="flex items-center justify-end gap-4"> <nav class="flex items-center justify-end gap-4">
+12 -1
View File
@@ -2,13 +2,24 @@
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Modules\Platform\app\Http\Controllers\PlatformDashboardController;
Route::get('/', function () { Route::get('/', function () {
return auth()->check() return auth()->check()
? redirect()->route('platform.dashboard')
? redirect()->route('dashboard')
: redirect()->route('login'); : redirect()->route('login');
})->name('home'); })->name('home');
Route::get('/dashboard', PlatformDashboardController::class)
->middleware(['auth'])
->name('dashboard');
require __DIR__.'/settings.php'; require __DIR__.'/settings.php';
Route::get('/api/countries/resolve/{code}', function (string $code) { Route::get('/api/countries/resolve/{code}', function (string $code) {
@@ -22,7 +22,7 @@ class AuthBrandingLayoutBrowserTest extends DuskTestCase
$this->browse(function (Browser $browser) use ($page, $expectedText): void { $this->browse(function (Browser $browser) use ($page, $expectedText): void {
$browser->resize(1280, 900) $browser->resize(1280, 900)
->visit($page) ->visit($page)
->waitFor('body', 10) ->waitFor('[data-dusk="page-ready"]')
->assertSee('WMS') ->assertSee('WMS')
->assertSee($expectedText) ->assertSee($expectedText)
->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1'); ->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1');
@@ -63,7 +63,7 @@ JS,
protected function openMobileNavigation(Browser $browser): void protected function openMobileNavigation(Browser $browser): void
{ {
$browser->resize(390, 844) $browser->resize(390, 844)
->waitFor('body', 10) ->waitFor('[data-dusk="page-ready"]')
->pause(250); ->pause(250);
$this->removeDebugbar($browser); $this->removeDebugbar($browser);
@@ -20,7 +20,7 @@ class MobileNavigationBrowserTest extends DuskTestCase
$browser->loginAs($admin) $browser->loginAs($admin)
->resize(390, 844) ->resize(390, 844)
->visit('/admin') ->visit('/admin')
->waitFor('body', 10) ->waitFor('[data-dusk="page-ready"]')
->assertSee('Platform') ->assertSee('Platform')
->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1'); ->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1');
@@ -47,7 +47,7 @@ class MobileNavigationBrowserTest extends DuskTestCase
$browser->loginAs($admin) $browser->loginAs($admin)
->resize(390, 844) ->resize(390, 844)
->visit('/admin') ->visit('/admin')
->waitFor('body', 10); ->waitFor('[data-dusk="page-ready"]');
foreach ($paths as $path => $title) { foreach ($paths as $path => $title) {
$this->openMobileNavigation($browser); $this->openMobileNavigation($browser);
@@ -66,7 +66,7 @@ class MobileNavigationBrowserTest extends DuskTestCase
$browser->loginAs($admin) $browser->loginAs($admin)
->resize(390, 844) ->resize(390, 844)
->visit('/admin') ->visit('/admin')
->waitFor('body', 10) ->waitFor('[data-dusk="page-ready"]')
->assertSee('Platform') ->assertSee('Platform')
->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1') ->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1')
->resize(768, 1024) ->resize(768, 1024)
@@ -38,7 +38,7 @@ class WmsResponsiveNavigationTest extends DuskTestCase
$browser->loginAs($admin) $browser->loginAs($admin)
->resize(390, 844) ->resize(390, 844)
->visit('/admin') ->visit('/admin')
->waitFor('body', 10) ->waitFor('[data-dusk="page-ready"]')
->assertSee('Platform') ->assertSee('Platform')
->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1'); ->assertScript('document.documentElement.scrollWidth <= document.documentElement.clientWidth + 1');
@@ -59,7 +59,7 @@ class WmsResponsiveNavigationTest extends DuskTestCase
$browser->loginAs($admin) $browser->loginAs($admin)
->resize(390, 844) ->resize(390, 844)
->visit('/admin') ->visit('/admin')
->waitFor('body', 10); ->waitFor('[data-dusk="page-ready"]');
$this->openMobileNavigation($browser); $this->openMobileNavigation($browser);
$this->closeMobileNavigation($browser); $this->closeMobileNavigation($browser);