Fix alias fake error (#1745)

* Add catch block in Alias::detectFake

* Update Alias unit tests
This commit is contained in:
WentTheFox
2025-12-10 10:09:42 +01:00
committed by GitHub
parent 9ef25f60e7
commit 12a0d7d54c
2 changed files with 41 additions and 0 deletions
+2
View File
@@ -256,6 +256,8 @@ class Alias
if ($fake !== $real) {
$this->addClass(get_class($fake));
}
} catch (Throwable $throwable) {
// Ignore error
} finally {
$facade::swap($real);
}
+39
View File
@@ -9,6 +9,7 @@ use Barryvdh\LaravelIdeHelper\Macro;
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 @@ class AliasTest extends TestCase
$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 @@ class AliasMock extends Alias
{
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)
{
}
}