feat(tia): continues to work on poc

This commit is contained in:
nuno maduro
2026-04-16 06:32:24 -07:00
parent 192f289e7e
commit 30fff116fd
5 changed files with 107 additions and 22 deletions

View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
namespace Pest\Contracts\Plugins;
/**
* Called at the start of `tearDown`. Return `false` to skip the framework
* tearDown, afterEach chain, and method-level cleanup.
*
* @internal
*/
interface AfterEachable
{
/**
* @param string $filename Absolute path of the test file.
* @param string $testId Fully-qualified `Class::method` identifier.
*/
public function afterEach(string $filename, string $testId): bool;
}

View File

@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace Pest\Contracts\Plugins;
/**
* Plugins implementing this interface are called before each test's `setUp`.
*
* Return `false` to skip the test entirely — `setUp`, body and `tearDown`
* are all bypassed and the test counts as passed with one synthetic
* assertion. Any other return value lets the test proceed normally.
*
* Resolution happens once per process via `Loader::getPlugins`; the per-test
* call is a cheap iteration over the cached list.
*
* @internal
*/
interface BeforeEachable
{
/**
* @param string $filename Absolute path of the test file.
* @param string $testId Fully-qualified `Class::method` identifier.
*/
public function beforeEach(string $filename, string $testId): bool;
}

View File

@ -0,0 +1,21 @@
<?php
declare(strict_types=1);
namespace Pest\Contracts\Plugins;
/**
* Called around the test body (`__runTest`). Return `false` to skip the
* closure — a synthetic assertion is registered so PHPUnit does not flag the
* test as risky.
*
* @internal
*/
interface Runnable
{
/**
* @param string $filename Absolute path of the test file.
* @param string $testId Fully-qualified `Class::method` identifier.
*/
public function run(string $filename, string $testId): bool;
}