mirror of
https://github.com/pestphp/pest.git
synced 2026-03-07 00:07:22 +01:00
Adds tap for Higher Order tests
This commit is contained in:
33
src/Support/HigherOrderCallables.php
Normal file
33
src/Support/HigherOrderCallables.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Pest\Support;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class HigherOrderCallables
|
||||
{
|
||||
/**
|
||||
* @var object
|
||||
*/
|
||||
private $target;
|
||||
|
||||
public function __construct(object $target)
|
||||
{
|
||||
$this->target = $target;
|
||||
}
|
||||
|
||||
/**
|
||||
* @template TValue
|
||||
*
|
||||
* @param callable(): TValue $callable
|
||||
*
|
||||
* @return TValue|object
|
||||
*/
|
||||
public function tap(callable $callable)
|
||||
{
|
||||
return Reflection::bindCallable($callable) ?? $this->target;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user