%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/vendor/pestphp/pest/src/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/vendor/pestphp/pest/src/TestSuite.php |
<?php declare(strict_types=1); namespace Pest; use Pest\Exceptions\InvalidPestCommand; use Pest\Repositories\AfterAllRepository; use Pest\Repositories\AfterEachRepository; use Pest\Repositories\BeforeAllRepository; use Pest\Repositories\BeforeEachRepository; use Pest\Repositories\SnapshotRepository; use Pest\Repositories\TestRepository; use Pest\Support\Str; use PHPUnit\Framework\TestCase; /** * @internal */ final class TestSuite { /** * Holds the current test case. */ public ?TestCase $test = null; /** * Holds the tests repository. */ public TestRepository $tests; /** * Holds the before each repository. */ public BeforeEachRepository $beforeEach; /** * Holds the before all repository. */ public BeforeAllRepository $beforeAll; /** * Holds the after each repository. */ public AfterEachRepository $afterEach; /** * Holds the after all repository. */ public AfterAllRepository $afterAll; /** * Holds the snapshots repository. */ public SnapshotRepository $snapshots; /** * Holds the root path. */ public string $rootPath; /** * Holds an instance of the test suite. */ private static ?TestSuite $instance = null; /** * Creates a new instance of the test suite. */ public function __construct( string $rootPath, public string $testPath, ) { $this->beforeAll = new BeforeAllRepository(); $this->beforeEach = new BeforeEachRepository(); $this->tests = new TestRepository(); $this->afterEach = new AfterEachRepository(); $this->afterAll = new AfterAllRepository(); $this->rootPath = (string) realpath($rootPath); $this->snapshots = new SnapshotRepository( implode(DIRECTORY_SEPARATOR, [$this->rootPath, $this->testPath]), implode(DIRECTORY_SEPARATOR, ['.pest', 'snapshots']), ); } /** * Returns the current instance of the test suite. */ public static function getInstance( ?string $rootPath = null, ?string $testPath = null, ): TestSuite { if (is_string($rootPath) && is_string($testPath)) { self::$instance = new TestSuite($rootPath, $testPath); foreach (Plugin::$callables as $callable) { $callable(); } return self::$instance; } if (! self::$instance instanceof self) { Panic::with(new InvalidPestCommand()); } return self::$instance; } public function getFilename(): string { assert($this->test instanceof TestCase); return (fn () => self::$__filename)->call($this->test, $this->test::class); // @phpstan-ignore-line } public function getDescription(): string { assert($this->test instanceof TestCase); $description = str_replace('__pest_evaluable_', '', $this->test->name()); $datasetAsString = str_replace('__pest_evaluable_', '', Str::evaluable($this->test->dataSetAsStringWithData())); return str_replace(' ', '_', $description.$datasetAsString); } public function registerSnapshotChange(string $message): void { assert($this->test instanceof TestCase); (fn (): string => $this->__snapshotChanges[] = $message)->call($this->test, $this->test::class); // @phpstan-ignore-line } }