From 406fcf72ae7fb58626d0db44873e766c5d8299e6 Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Wed, 28 Dec 2022 14:21:07 +0000 Subject: [PATCH] fix: overrides being used on regular phpunit --- composer.json | 8 ------ src/Bootstrappers/BootOverrides.php | 40 +++++++++++++++++++++++++++++ src/Kernel.php | 1 + src/Support/Reflection.php | 5 ++-- src/TestSuite.php | 2 +- 5 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 src/Bootstrappers/BootOverrides.php diff --git a/composer.json b/composer.json index 9646056f..557eebcf 100644 --- a/composer.json +++ b/composer.json @@ -27,15 +27,7 @@ "psr-4": { "Pest\\": "src/" }, - "exclude-from-classmap": [ - "../phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php", - "vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php", - "../phpunit/src/Runner/TestSuiteLoader.php", - "vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php" - ], "files": [ - "overrides/Runner/Filter/NameFilterIterator.php", - "overrides/Runner/TestSuiteLoader.php", "src/Functions.php", "src/Pest.php" ] diff --git a/src/Bootstrappers/BootOverrides.php b/src/Bootstrappers/BootOverrides.php new file mode 100644 index 00000000..9c637d0f --- /dev/null +++ b/src/Bootstrappers/BootOverrides.php @@ -0,0 +1,40 @@ + + */ + private const FILES = [ + 'Runner/Filter/NameFilterIterator.php', + 'Runner/TestSuiteLoader.php', + ]; + + /** + * Boots the Subscribers. + */ + public function boot(): void + { + foreach (self::FILES as $file) { + $file = __DIR__."/../../overrides/$file"; + + if (! file_exists($file)) { + throw ShouldNotHappen::fromMessage(sprintf('File [%s] does not exist.', $file)); + } + + require_once $file; + } + } +} diff --git a/src/Kernel.php b/src/Kernel.php index bf7b200f..aa8afa34 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -23,6 +23,7 @@ final class Kernel * @var array */ private const BOOTSTRAPPERS = [ + Bootstrappers\BootOverrides::class, Bootstrappers\BootExceptionHandler::class, Bootstrappers\BootSubscribers::class, Bootstrappers\BootFiles::class, diff --git a/src/Support/Reflection.php b/src/Support/Reflection.php index c16b926e..14edd7ad 100644 --- a/src/Support/Reflection.php +++ b/src/Support/Reflection.php @@ -12,6 +12,7 @@ use ReflectionException; use ReflectionFunction; use ReflectionNamedType; use ReflectionParameter; +use ReflectionProperty; use ReflectionUnionType; /** @@ -95,7 +96,7 @@ final class Reflection $reflectionProperty = null; - while ($reflectionProperty === null) { + while (! $reflectionProperty instanceof ReflectionProperty) { try { /* @var ReflectionProperty $reflectionProperty */ $reflectionProperty = $reflectionClass->getProperty($property); @@ -127,7 +128,7 @@ final class Reflection $reflectionProperty = null; - while ($reflectionProperty === null) { + while (! $reflectionProperty instanceof ReflectionProperty) { try { /* @var ReflectionProperty $reflectionProperty */ $reflectionProperty = $reflectionClass->getProperty($property); diff --git a/src/TestSuite.php b/src/TestSuite.php index c460f532..ab428e1a 100644 --- a/src/TestSuite.php +++ b/src/TestSuite.php @@ -95,7 +95,7 @@ final class TestSuite return self::$instance; } - if (self::$instance === null) { + if (! self::$instance instanceof self) { throw new InvalidPestCommand(); }