diff --git a/src/Bootstrappers/BootSubscribers.php b/src/Bootstrappers/BootSubscribers.php index e9819fa4..ab31e337 100644 --- a/src/Bootstrappers/BootSubscribers.php +++ b/src/Bootstrappers/BootSubscribers.php @@ -23,7 +23,8 @@ final class BootSubscribers implements Bootstrapper Subscribers\EnsureConfigurationIsValid::class, Subscribers\EnsureConfigurationDefaults::class, Subscribers\EnsureRetryRepositoryExists::class, - Subscribers\EnsureFailedTestsAreStoredForRetry::class, + Subscribers\EnsureErroredTestsAreRetryable::class, + Subscribers\EnsureFailedTestsAreRetryable::class, ]; /** diff --git a/src/Factories/TestCaseMethodFactory.php b/src/Factories/TestCaseMethodFactory.php index 3620b710..1bca4dd9 100644 --- a/src/Factories/TestCaseMethodFactory.php +++ b/src/Factories/TestCaseMethodFactory.php @@ -123,7 +123,7 @@ final class TestCaseMethodFactory $methodName = Str::evaluable($this->description); - $retryRepository = TestSuite::getInstance()->retryTempRepository; + $retryRepository = TestSuite::getInstance()->retryRepository; if (Retry::$retrying && ! $retryRepository->isEmpty() && ! $retryRepository->exists(sprintf('%s::%s', $classFQN, $methodName))) { return ''; diff --git a/src/Repositories/TempRepository.php b/src/Repositories/RetryRepository.php similarity index 76% rename from src/Repositories/TempRepository.php rename to src/Repositories/RetryRepository.php index 701aec99..e2a158c2 100644 --- a/src/Repositories/TempRepository.php +++ b/src/Repositories/RetryRepository.php @@ -7,9 +7,15 @@ namespace Pest\Repositories; /** * @internal */ -final class TempRepository +final class RetryRepository { - private const FOLDER = __DIR__.'/../../.temp'; + private const TEMPORARY_FOLDER = __DIR__ + .DIRECTORY_SEPARATOR + .'..' + .DIRECTORY_SEPARATOR + .'..' + .DIRECTORY_SEPARATOR + .'.temp'; /** * Creates a new Temp Repository instance. @@ -32,7 +38,7 @@ final class TempRepository */ public function boot(): void { - @unlink(self::FOLDER.'/'.$this->filename.'.json'); // @phpstan-ignore-line + @unlink(self::TEMPORARY_FOLDER.'/'.$this->filename.'.json'); // @phpstan-ignore-line $this->save([]); } @@ -60,7 +66,7 @@ final class TempRepository */ private function all(): array { - $path = self::FOLDER.'/'.$this->filename.'.json'; + $path = self::TEMPORARY_FOLDER.'/'.$this->filename.'.json'; $contents = file_exists($path) ? file_get_contents($path) : '{}'; @@ -80,6 +86,6 @@ final class TempRepository { $contents = json_encode($elements, JSON_THROW_ON_ERROR); - file_put_contents(self::FOLDER.'/'.$this->filename.'.json', $contents); + file_put_contents(self::TEMPORARY_FOLDER.'/'.$this->filename.'.json', $contents); } } diff --git a/src/Subscribers/EnsureErroredTestsAreRetryable.php b/src/Subscribers/EnsureErroredTestsAreRetryable.php new file mode 100644 index 00000000..6eb2661d --- /dev/null +++ b/src/Subscribers/EnsureErroredTestsAreRetryable.php @@ -0,0 +1,23 @@ +retryRepository->add($event->test()->id()); + } +} diff --git a/src/Subscribers/EnsureFailedTestsAreStoredForRetry.php b/src/Subscribers/EnsureFailedTestsAreRetryable.php similarity index 64% rename from src/Subscribers/EnsureFailedTestsAreStoredForRetry.php rename to src/Subscribers/EnsureFailedTestsAreRetryable.php index 46fce87a..73468723 100644 --- a/src/Subscribers/EnsureFailedTestsAreStoredForRetry.php +++ b/src/Subscribers/EnsureFailedTestsAreRetryable.php @@ -11,13 +11,13 @@ use PHPUnit\Event\Test\FailedSubscriber; /** * @internal */ -final class EnsureFailedTestsAreStoredForRetry implements FailedSubscriber +final class EnsureFailedTestsAreRetryable implements FailedSubscriber { /** * Runs the subscriber. */ public function notify(Failed $event): void { - TestSuite::getInstance()->retryTempRepository->add($event->test()->id()); + TestSuite::getInstance()->retryRepository->add($event->test()->id()); } } diff --git a/src/Subscribers/EnsureRetryRepositoryExists.php b/src/Subscribers/EnsureRetryRepositoryExists.php index dc988d1d..91226b0c 100644 --- a/src/Subscribers/EnsureRetryRepositoryExists.php +++ b/src/Subscribers/EnsureRetryRepositoryExists.php @@ -18,6 +18,6 @@ final class EnsureRetryRepositoryExists implements StartedSubscriber */ public function notify(Started $event): void { - TestSuite::getInstance()->retryTempRepository->boot(); + TestSuite::getInstance()->retryRepository->boot(); } } diff --git a/src/TestSuite.php b/src/TestSuite.php index ab428e1a..c7911b87 100644 --- a/src/TestSuite.php +++ b/src/TestSuite.php @@ -9,7 +9,7 @@ use Pest\Repositories\AfterAllRepository; use Pest\Repositories\AfterEachRepository; use Pest\Repositories\BeforeAllRepository; use Pest\Repositories\BeforeEachRepository; -use Pest\Repositories\TempRepository; +use Pest\Repositories\RetryRepository; use Pest\Repositories\TestRepository; use PHPUnit\Framework\TestCase; @@ -49,9 +49,9 @@ final class TestSuite public AfterAllRepository $afterAll; /** - * Holds the retry temp repository. + * Holds the retry repository. */ - public TempRepository $retryTempRepository; + public RetryRepository $retryRepository; /** * Holds the root path. @@ -75,7 +75,7 @@ final class TestSuite $this->tests = new TestRepository(); $this->afterEach = new AfterEachRepository(); $this->afterAll = new AfterAllRepository(); - $this->retryTempRepository = new TempRepository('retry'); + $this->retryRepository = new RetryRepository('retry'); $this->rootPath = (string) realpath($rootPath); }