From 2ef5f7d0bc1c91228d419595381164661683c01f Mon Sep 17 00:00:00 2001 From: Double Colon Date: Tue, 9 Dec 2025 23:27:57 +0100 Subject: [PATCH 1/2] Add catch block in Alias::detectFake --- src/Alias.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Alias.php b/src/Alias.php index 245edb472..8008d0129 100644 --- a/src/Alias.php +++ b/src/Alias.php @@ -256,6 +256,8 @@ protected function detectFake() if ($fake !== $real) { $this->addClass(get_class($fake)); } + } catch (Throwable $throwable) { + // Ignore error } finally { $facade::swap($real); } From 3819a33c4676c3e004add5f517c434bcf3d77efe Mon Sep 17 00:00:00 2001 From: WentTheFox Date: Tue, 9 Dec 2025 23:46:54 +0100 Subject: [PATCH 2/2] Update Alias unit tests --- tests/AliasTest.php | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/tests/AliasTest.php b/tests/AliasTest.php index e0aa43373..d11ddd89b 100644 --- a/tests/AliasTest.php +++ b/tests/AliasTest.php @@ -9,6 +9,7 @@ use Illuminate\Database\Eloquent\Builder as EloquentBuilder; use Illuminate\Database\Query\Builder; use Illuminate\Support\Arr; +use Illuminate\Support\Facades\Facade; /** * @internal @@ -66,6 +67,22 @@ function () { $this->assertNotNull($this->getAliasMacro($alias, EloquentBuilder::class, $macro)); } + /** + * @covers ::detectFake + */ + public function testNoExceptionOnRequiredFakeParameters(): void + { + // Mock + $alias = new AliasMock(); + + // Prepare + $alias->setFacade(MockFacade::class); + $this->expectNotToPerformAssertions(); + + // Test + $alias->detectFake(); + } + /** * @covers ::detectTemplateNames */ @@ -118,4 +135,26 @@ public function detectMethods() { parent::detectMethods(); } + + public function detectFake() + { + parent::detectFake(); + } + + public function setFacade(string $facade) + { + $this->facade = $facade; + } +} + +class MockFacade extends Facade +{ + protected static function getFacadeAccessor() + { + return ''; + } + + public static function fake(string $test1, $test2 = null) + { + } }