mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 07:47:22 +01:00
Allow custom arch expectations
This commit is contained in:
@ -330,7 +330,7 @@ final class Expectation
|
||||
* @param array<int, mixed> $parameters
|
||||
* @return Expectation<TValue>|HigherOrderExpectation<Expectation<TValue>, TValue>
|
||||
*/
|
||||
public function __call(string $method, array $parameters): Expectation|HigherOrderExpectation|PendingArchExpectation
|
||||
public function __call(string $method, array $parameters): Expectation|HigherOrderExpectation|PendingArchExpectation|ArchExpectation
|
||||
{
|
||||
if (! self::hasMethod($method)) {
|
||||
if (! is_object($this->value) && method_exists(PendingArchExpectation::class, $method)) {
|
||||
@ -355,6 +355,10 @@ final class Expectation
|
||||
$reflectionClosure = new \ReflectionFunction($closure);
|
||||
$expectation = $reflectionClosure->getClosureThis();
|
||||
|
||||
if ($reflectionClosure->getReturnType()?->__toString() === ArchExpectation::class) {
|
||||
return $closure(...$parameters);
|
||||
}
|
||||
|
||||
assert(is_object($expectation));
|
||||
|
||||
ExpectationPipeline::for($closure)
|
||||
|
||||
Reference in New Issue
Block a user