From 1b38b39a47eb1d0528c3f5029f74ce0de9e6e692 Mon Sep 17 00:00:00 2001 From: surtic86 Date: Fri, 18 Sep 2026 05:30:29 +0200 Subject: [PATCH] Stop every test page asking for a favicon nothing serves `ready()` waits for the network to go idle, and each probe page asked for /favicon.ico, which its route does not answer: the server threw NotFoundHttpException on the way, and on the runner the two full-screen date picker tests spent their whole budget inside that wait rather than in the click Pest named. Every probe page now carries ``, so the browser asks for nothing. The showcase's own head carries it too. It ships no icon, and the 404 was the application's to answer. The runner takes two and a half to three times as long as a workstation, so BROWSER_TIMEOUT there goes from 15 to 45 seconds: a page that loads the application's Vite entries, Alpine and Livewire had no headroom left. Feature 1159 passed; Browser 299 passed on Chrome, Firefox and WebKit. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/tests.yml | 2 +- resources/views/showcase/head.blade.php | 4 ++++ tests/Browser/ActionsTest.php | 8 ++++++++ tests/Browser/BarsTest.php | 5 +++++ tests/Browser/CarouselTest.php | 2 ++ tests/Browser/CascadeTest.php | 5 +++++ tests/Browser/ChipsTest.php | 2 ++ tests/Browser/CommunicationTest.php | 1 + tests/Browser/ContainmentTest.php | 14 ++++++++++++++ tests/Browser/DataTest.php | 1 + tests/Browser/DatepickerTest.php | 3 +++ tests/Browser/FieldsTest.php | 5 +++++ tests/Browser/LayoutTest.php | 1 + tests/Browser/NavigationTest.php | 3 +++ tests/Browser/PickingTest.php | 2 ++ tests/Browser/ProgressTest.php | 1 + tests/Browser/SliderTest.php | 1 + tests/Browser/ThemeTest.php | 2 ++ tests/Browser/TimepickerTest.php | 1 + 19 files changed, 62 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d4f59d2b..db76ff5c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -101,4 +101,4 @@ jobs: - name: Run browser tests run: vendor/bin/pest --testsuite=Browser --browser ${{ matrix.browser }} env: - BROWSER_TIMEOUT: 15000 + BROWSER_TIMEOUT: 45000 diff --git a/resources/views/showcase/head.blade.php b/resources/views/showcase/head.blade.php index e25c7524..5c8452f6 100644 --- a/resources/views/showcase/head.blade.php +++ b/resources/views/showcase/head.blade.php @@ -7,6 +7,10 @@ + {{-- The showcase is the package's own page and ships no icon: an empty data URI keeps the + browser from asking the application for /favicon.ico, which its routes need not answer. --}} + + {{ $pageTitle }} diff --git a/tests/Browser/ActionsTest.php b/tests/Browser/ActionsTest.php index a3a94f5f..7acf7c9a 100644 --- a/tests/Browser/ActionsTest.php +++ b/tests/Browser/ActionsTest.php @@ -111,6 +111,7 @@ function menuMorphProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -292,6 +293,7 @@ it('hangs a menu on its menu button, even when the button is fixed to a corner o + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -338,6 +340,7 @@ it('paints a group\'s hint and a menu item\'s icon in the colour their classes n + @vite(config('livewire-material.showcase.vite')) @@ -537,6 +540,7 @@ it('hides a disabled fab button below 600px, as M3 removes a FAB whose action is + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -612,6 +616,7 @@ function groupSizeProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -749,6 +754,7 @@ function longMenuProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -771,6 +777,7 @@ function sheetMenuProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -964,6 +971,7 @@ function longFabMenuProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/BarsTest.php b/tests/Browser/BarsTest.php index 62c7de4d..54ecf9cf 100644 --- a/tests/Browser/BarsTest.php +++ b/tests/Browser/BarsTest.php @@ -71,6 +71,7 @@ function barsProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -273,6 +274,7 @@ function appBarOverflowProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -345,6 +347,7 @@ function toolbarScaffoldProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -397,6 +400,7 @@ it('lifts a snackbar above a floating toolbar placed at the bottom, without a sc + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -458,6 +462,7 @@ function tabsFirstPaintProbe(): void + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/CarouselTest.php b/tests/Browser/CarouselTest.php index b1c1ce50..db66fde8 100644 --- a/tests/Browser/CarouselTest.php +++ b/tests/Browser/CarouselTest.php @@ -212,6 +212,7 @@ it('mirrors in a right-to-left page', function () { + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -253,6 +254,7 @@ it('measures itself again after a Livewire morph adds an item', function () { + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/CascadeTest.php b/tests/Browser/CascadeTest.php index 82ec44c1..6dbe6873 100644 --- a/tests/Browser/CascadeTest.php +++ b/tests/Browser/CascadeTest.php @@ -28,6 +28,7 @@ it('lets an application\'s unlayered rule beat a component default', function () + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -52,6 +53,7 @@ it('lets [hidden] beat a component\'s display', function () { + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -88,6 +90,7 @@ it('keeps the layer order even when a component file is imported before the foun + @@ -131,6 +134,7 @@ it('keeps a data-md-* attribute through a Livewire $refresh', function () { + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -159,6 +163,7 @@ it('mirrors an icon in a right-to-left document, not in left-to-right', function + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/ChipsTest.php b/tests/Browser/ChipsTest.php index dc083758..1558f671 100644 --- a/tests/Browser/ChipsTest.php +++ b/tests/Browser/ChipsTest.php @@ -57,6 +57,7 @@ function chipProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -215,6 +216,7 @@ function chipScrollProbe(string $dir) + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/CommunicationTest.php b/tests/Browser/CommunicationTest.php index 6f3a2fcb..97fce29c 100644 --- a/tests/Browser/CommunicationTest.php +++ b/tests/Browser/CommunicationTest.php @@ -245,6 +245,7 @@ it('keeps a rich tooltip open while its action renders the component, and opens + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/ContainmentTest.php b/tests/Browser/ContainmentTest.php index 4f1ec4e9..c16372f8 100644 --- a/tests/Browser/ContainmentTest.php +++ b/tests/Browser/ContainmentTest.php @@ -93,6 +93,7 @@ function collapseProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -115,6 +116,7 @@ function overlayProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -251,6 +253,7 @@ function nestedDialogProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -387,6 +390,7 @@ function textOnlyDialogProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -580,6 +584,7 @@ function layersProbe(): mixed + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -756,6 +761,7 @@ it('draws a standard side sheet that starts open standing open, without growing + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -791,6 +797,7 @@ it('sticks a standard side sheet under the top safe area and a scaffold\'s stick + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -869,6 +876,7 @@ it('draws standard side sheets as the server renders them from the first paint, + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1065,6 +1073,7 @@ it('slides the side sheet in from its own edge in a right-to-left page', functio + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1133,6 +1142,7 @@ it('keeps a basic dialog\'s own title and padding when it is nested inside a ful + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1190,6 +1200,7 @@ it('keeps a selected segmented row\'s fill under the hover and focus tint', func + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1247,6 +1258,7 @@ it('fills a selected row written by hand in secondary-container in both themes, + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1316,6 +1328,7 @@ function collapseMotionProbe(string $durations = ''): mixed + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -1611,6 +1624,7 @@ it('shows no tooltip on the control a sheet or a dialog focuses as it opens, but + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/DataTest.php b/tests/Browser/DataTest.php index d9131dc5..71a83607 100644 --- a/tests/Browser/DataTest.php +++ b/tests/Browser/DataTest.php @@ -65,6 +65,7 @@ function dataProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/DatepickerTest.php b/tests/Browser/DatepickerTest.php index ede2c04f..cc333663 100644 --- a/tests/Browser/DatepickerTest.php +++ b/tests/Browser/DatepickerTest.php @@ -53,6 +53,7 @@ function dateProbe(string $locale = 'en') + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -108,6 +109,7 @@ function dateFormatProbe(string $locale = 'en') + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -148,6 +150,7 @@ function scopedDateProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/FieldsTest.php b/tests/Browser/FieldsTest.php index 491624a8..7ab61259 100644 --- a/tests/Browser/FieldsTest.php +++ b/tests/Browser/FieldsTest.php @@ -73,6 +73,7 @@ function fieldProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -219,6 +220,7 @@ it('ends a select\'s value before its arrow with an ellipsis, at every size and + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -336,6 +338,7 @@ function fieldStateProbe(): mixed + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -431,6 +434,7 @@ function fieldWidthProbe(int $width) + @vite(config('livewire-material.showcase.vite')) @@ -520,6 +524,7 @@ it('keeps a switch\'s track and a checkbox\'s box whole beside long text in a ro + @vite(config('livewire-material.showcase.vite')) diff --git a/tests/Browser/LayoutTest.php b/tests/Browser/LayoutTest.php index 65fecd9a..6d964465 100644 --- a/tests/Browser/LayoutTest.php +++ b/tests/Browser/LayoutTest.php @@ -19,6 +19,7 @@ function layoutPage(string $body, int $width, int $height = 900, string $dir = ' + @vite(config('livewire-material.showcase.vite')) diff --git a/tests/Browser/NavigationTest.php b/tests/Browser/NavigationTest.php index a9b8cd62..1047fb00 100644 --- a/tests/Browser/NavigationTest.php +++ b/tests/Browser/NavigationTest.php @@ -33,6 +33,7 @@ function firstPaintProbe(): void + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -358,6 +359,7 @@ function navigationExtrasProbe(): mixed + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -531,6 +533,7 @@ function railValueProbe(string $mode, int $width = 1280): mixed + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/PickingTest.php b/tests/Browser/PickingTest.php index 8972466c..1cea0c26 100644 --- a/tests/Browser/PickingTest.php +++ b/tests/Browser/PickingTest.php @@ -64,6 +64,7 @@ function pickProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -137,6 +138,7 @@ it('hangs a searchable choice\'s list under its field and as wide, bounded at 40 + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/ProgressTest.php b/tests/Browser/ProgressTest.php index 18983bf3..f8070605 100644 --- a/tests/Browser/ProgressTest.php +++ b/tests/Browser/ProgressTest.php @@ -127,6 +127,7 @@ it('follows a value the server changes through a Livewire morph', function () { + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/SliderTest.php b/tests/Browser/SliderTest.php index 4a71fc2f..cfed39a0 100644 --- a/tests/Browser/SliderTest.php +++ b/tests/Browser/SliderTest.php @@ -42,6 +42,7 @@ function sliderProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles diff --git a/tests/Browser/ThemeTest.php b/tests/Browser/ThemeTest.php index 6bd72fad..6cea29a0 100644 --- a/tests/Browser/ThemeTest.php +++ b/tests/Browser/ThemeTest.php @@ -127,6 +127,7 @@ it('repaints the contrast level at once, and it survives a wire:navigate', funct + @vite(config('livewire-material.showcase.vite')) @livewireStyles @@ -165,6 +166,7 @@ it('repaints the page\'s own theme-color meta, and the next page\'s after wire:n + diff --git a/tests/Browser/TimepickerTest.php b/tests/Browser/TimepickerTest.php index 02c75a74..93ac2260 100644 --- a/tests/Browser/TimepickerTest.php +++ b/tests/Browser/TimepickerTest.php @@ -45,6 +45,7 @@ function timeProbe() + @vite(config('livewire-material.showcase.vite')) @livewireStyles