From 213d9a46901219eb5db534c377225f8afd5d6ea8 Mon Sep 17 00:00:00 2001 From: Enzo Innocenzi Date: Sat, 17 Jan 2026 15:58:20 +0100 Subject: [PATCH] fix(core): work around Pest test file autoloading --- .../core/src/Kernel/LoadDiscoveryClasses.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/core/src/Kernel/LoadDiscoveryClasses.php b/packages/core/src/Kernel/LoadDiscoveryClasses.php index 6c7e2c65e..561dc1de0 100644 --- a/packages/core/src/Kernel/LoadDiscoveryClasses.php +++ b/packages/core/src/Kernel/LoadDiscoveryClasses.php @@ -4,6 +4,7 @@ namespace Tempest\Core\Kernel; +use AssertionError; use Tempest\Container\Container; use Tempest\Core\DiscoveryCache; use Tempest\Core\DiscoveryCacheStrategy; @@ -185,13 +186,19 @@ private function scan(DiscoveryLocation $location, array $discoveries, string $p // Discovery errors (syntax errors, missing imports, etc.) // are ignored when they happen in vendor files, // but they are allowed to be thrown in project code - if ($location->isVendor()) { - try { + try { + if ($location->isVendor()) { + try { + $input = new ClassReflector($className); + } catch (Throwable) { + // @mago-expect lint:no-empty-catch-clause + } + } elseif (class_exists($className)) { $input = new ClassReflector($className); - } catch (Throwable) { // @mago-expect lint:no-empty-catch-clause } - } elseif (class_exists($className)) { - $input = new ClassReflector($className); + } catch (AssertionError) { + // Workaround for Pest test files autoloading. + // @mago-expect lint:no-empty-catch-clause } if ($input instanceof ClassReflector) {